- Dropped designated initializers as they are not supported on Microsoft Visual C
diff --git a/library/cipher_wrap.c b/library/cipher_wrap.c
index dd41a35..bfcfcb5 100644
--- a/library/cipher_wrap.c
+++ b/library/cipher_wrap.c
@@ -68,48 +68,48 @@
 }
 
 const cipher_info_t aes_128_cbc_info = {
-    .type = POLARSSL_CIPHER_AES_128_CBC,
-    .cipher = POLARSSL_CIPHER_ID_AES,
-    .mode = POLARSSL_MODE_CBC,
-    .key_length = 128,
-    .name = "AES-128-CBC",
-    .iv_size = 16,
-    .block_size = 16,
-    .cbc_func = aes_crypt_cbc_wrap,
-    .setkey_enc_func = aes_setkey_enc_wrap,
-    .setkey_dec_func = aes_setkey_dec_wrap,
-    .ctx_alloc_func = aes_ctx_alloc,
-    .ctx_free_func = aes_ctx_free
+	POLARSSL_CIPHER_AES_128_CBC,
+	POLARSSL_CIPHER_ID_AES,
+	POLARSSL_MODE_CBC,
+	128,
+	"AES-128-CBC",
+	16,
+	16,
+	aes_crypt_cbc_wrap,
+	aes_setkey_enc_wrap,
+	aes_setkey_dec_wrap,
+	aes_ctx_alloc,
+	aes_ctx_free
 };
 
 const cipher_info_t aes_192_cbc_info = {
-    .type = POLARSSL_CIPHER_AES_192_CBC,
-    .cipher = POLARSSL_CIPHER_ID_AES,
-    .mode = POLARSSL_MODE_CBC,
-    .key_length = 192,
-    .name = "AES-192-CBC",
-    .iv_size = 16,
-    .block_size = 16,
-    .cbc_func = aes_crypt_cbc_wrap,
-    .setkey_enc_func = aes_setkey_enc_wrap,
-    .setkey_dec_func = aes_setkey_dec_wrap,
-    .ctx_alloc_func = aes_ctx_alloc,
-    .ctx_free_func = aes_ctx_free
+	POLARSSL_CIPHER_AES_192_CBC,
+	POLARSSL_CIPHER_ID_AES,
+	POLARSSL_MODE_CBC,
+	192,
+	"AES-192-CBC",
+	16,
+	16,
+	aes_crypt_cbc_wrap,
+	aes_setkey_enc_wrap,
+	aes_setkey_dec_wrap,
+	aes_ctx_alloc,
+	aes_ctx_free
 };
 
 const cipher_info_t aes_256_cbc_info = {
-    .type = POLARSSL_CIPHER_AES_256_CBC,
-    .cipher = POLARSSL_CIPHER_ID_AES,
-    .mode = POLARSSL_MODE_CBC,
-    .key_length = 256,
-    .name = "AES-256-CBC",
-    .iv_size = 16,
-    .block_size = 16,
-    .cbc_func = aes_crypt_cbc_wrap,
-    .setkey_enc_func = aes_setkey_enc_wrap,
-    .setkey_dec_func = aes_setkey_dec_wrap,
-    .ctx_alloc_func = aes_ctx_alloc,
-    .ctx_free_func = aes_ctx_free
+	POLARSSL_CIPHER_AES_256_CBC,
+	POLARSSL_CIPHER_ID_AES,
+	POLARSSL_MODE_CBC,
+	256,
+	"AES-256-CBC",
+	16,
+	16,
+	aes_crypt_cbc_wrap,
+	aes_setkey_enc_wrap,
+	aes_setkey_dec_wrap,
+	aes_ctx_alloc,
+	aes_ctx_free
 };
 #endif
 
@@ -142,48 +142,48 @@
 }
 
 const cipher_info_t camellia_128_cbc_info = {
-    .type = POLARSSL_CIPHER_CAMELLIA_128_CBC,
-    .cipher = POLARSSL_CIPHER_ID_CAMELLIA,
-    .mode = POLARSSL_MODE_CBC,
-    .key_length = 128,
-    .name = "CAMELLIA-128-CBC",
-    .iv_size = 16,
-    .block_size = 16,
-    .cbc_func = camellia_crypt_cbc_wrap,
-    .setkey_enc_func = camellia_setkey_enc_wrap,
-    .setkey_dec_func = camellia_setkey_dec_wrap,
-    .ctx_alloc_func = camellia_ctx_alloc,
-    .ctx_free_func = camellia_ctx_free
+	POLARSSL_CIPHER_CAMELLIA_128_CBC,
+	POLARSSL_CIPHER_ID_CAMELLIA,
+	POLARSSL_MODE_CBC,
+	128,
+	"CAMELLIA-128-CBC",
+	16,
+	16,
+	camellia_crypt_cbc_wrap,
+	camellia_setkey_enc_wrap,
+	camellia_setkey_dec_wrap,
+	camellia_ctx_alloc,
+	camellia_ctx_free
 };
 
 const cipher_info_t camellia_192_cbc_info = {
-    .type = POLARSSL_CIPHER_CAMELLIA_192_CBC,
-    .cipher = POLARSSL_CIPHER_ID_CAMELLIA,
-    .mode = POLARSSL_MODE_CBC,
-    .key_length = 192,
-    .name = "CAMELLIA-192-CBC",
-    .iv_size = 16,
-    .block_size = 16,
-    .cbc_func = camellia_crypt_cbc_wrap,
-    .setkey_enc_func = camellia_setkey_enc_wrap,
-    .setkey_dec_func = camellia_setkey_dec_wrap,
-    .ctx_alloc_func = camellia_ctx_alloc,
-    .ctx_free_func = camellia_ctx_free
+	POLARSSL_CIPHER_CAMELLIA_192_CBC,
+	POLARSSL_CIPHER_ID_CAMELLIA,
+	POLARSSL_MODE_CBC,
+	192,
+	"CAMELLIA-192-CBC",
+	16,
+	16,
+	camellia_crypt_cbc_wrap,
+	camellia_setkey_enc_wrap,
+	camellia_setkey_dec_wrap,
+	camellia_ctx_alloc,
+	camellia_ctx_free
 };
 
 const cipher_info_t camellia_256_cbc_info = {
-    .type = POLARSSL_CIPHER_CAMELLIA_256_CBC,
-    .cipher = POLARSSL_CIPHER_ID_CAMELLIA,
-    .mode = POLARSSL_MODE_CBC,
-    .key_length = 256,
-    .name = "CAMELLIA-256-CBC",
-    .iv_size = 16,
-    .block_size = 16,
-    .cbc_func = camellia_crypt_cbc_wrap,
-    .setkey_enc_func = camellia_setkey_enc_wrap,
-    .setkey_dec_func = camellia_setkey_dec_wrap,
-    .ctx_alloc_func = camellia_ctx_alloc,
-    .ctx_free_func = camellia_ctx_free
+	POLARSSL_CIPHER_CAMELLIA_256_CBC,
+	POLARSSL_CIPHER_ID_CAMELLIA,
+	POLARSSL_MODE_CBC,
+	256,
+	"CAMELLIA-256-CBC",
+	16,
+	16,
+	camellia_crypt_cbc_wrap,
+	camellia_setkey_enc_wrap,
+	camellia_setkey_dec_wrap,
+	camellia_ctx_alloc,
+	camellia_ctx_free
 };
 #endif
 
@@ -259,48 +259,48 @@
 }
 
 const cipher_info_t des_cbc_info = {
-    .type = POLARSSL_CIPHER_DES_CBC,
-    .cipher = POLARSSL_CIPHER_ID_DES,
-    .mode = POLARSSL_MODE_CBC,
-    .key_length = POLARSSL_KEY_LENGTH_DES,
-    .name = "DES-CBC",
-    .iv_size = 8,
-    .block_size = 8,
-    .cbc_func = des_crypt_cbc_wrap,
-    .setkey_enc_func = des_setkey_enc_wrap,
-    .setkey_dec_func = des_setkey_dec_wrap,
-    .ctx_alloc_func = des_ctx_alloc,
-    .ctx_free_func = des_ctx_free
+	POLARSSL_CIPHER_DES_CBC,
+	POLARSSL_CIPHER_ID_DES,
+	POLARSSL_MODE_CBC,
+	POLARSSL_KEY_LENGTH_DES,
+	"DES-CBC",
+	8,
+	8,
+	des_crypt_cbc_wrap,
+	des_setkey_enc_wrap,
+	des_setkey_dec_wrap,
+	des_ctx_alloc,
+	des_ctx_free
 };
 
 const cipher_info_t des_ede_cbc_info = {
-    .type = POLARSSL_CIPHER_DES_EDE_CBC,
-    .cipher = POLARSSL_CIPHER_ID_DES,
-    .mode = POLARSSL_MODE_CBC,
-    .key_length = POLARSSL_KEY_LENGTH_DES_EDE,
-    .name = "DES-EDE-CBC",
-    .iv_size = 16,
-    .block_size = 16,
-    .cbc_func = des3_crypt_cbc_wrap,
-    .setkey_enc_func = des3_set2key_enc_wrap,
-    .setkey_dec_func = des3_set2key_dec_wrap,
-    .ctx_alloc_func = des3_ctx_alloc,
-    .ctx_free_func = des_ctx_free
+	POLARSSL_CIPHER_DES_EDE_CBC,
+	POLARSSL_CIPHER_ID_DES,
+	POLARSSL_MODE_CBC,
+	POLARSSL_KEY_LENGTH_DES_EDE,
+	"DES-EDE-CBC",
+	16,
+	16,
+	des3_crypt_cbc_wrap,
+	des3_set2key_enc_wrap,
+	des3_set2key_dec_wrap,
+	des3_ctx_alloc,
+	des_ctx_free
 };
 
 const cipher_info_t des_ede3_cbc_info = {
-    .type = POLARSSL_CIPHER_DES_EDE3_CBC,
-    .cipher = POLARSSL_CIPHER_ID_DES,
-    .mode = POLARSSL_MODE_CBC,
-    .key_length = POLARSSL_KEY_LENGTH_DES_EDE3,
-    .name = "DES-EDE3-CBC",
-    .iv_size = 8,
-    .block_size = 8,
-    .cbc_func = des3_crypt_cbc_wrap,
-    .setkey_enc_func = des3_set3key_enc_wrap,
-    .setkey_dec_func = des3_set3key_dec_wrap,
-    .ctx_alloc_func = des3_ctx_alloc,
-    .ctx_free_func = des_ctx_free
+	POLARSSL_CIPHER_DES_EDE3_CBC,
+	POLARSSL_CIPHER_ID_DES,
+	POLARSSL_MODE_CBC,
+	POLARSSL_KEY_LENGTH_DES_EDE3,
+	"DES-EDE3-CBC",
+	8,
+	8,
+	des3_crypt_cbc_wrap,
+	des3_set3key_enc_wrap,
+	des3_set3key_dec_wrap,
+	des3_ctx_alloc,
+	des_ctx_free
 };
 #endif
 
diff --git a/library/md_wrap.c b/library/md_wrap.c
index 23d1294..944a12a 100644
--- a/library/md_wrap.c
+++ b/library/md_wrap.c
@@ -90,21 +90,21 @@
 }
 
 const md_info_t md2_info = {
-    .type = POLARSSL_MD_MD2,
-    .name = "MD2",
-    .size = 16,
-    .starts_func = md2_starts_wrap,
-    .update_func = md2_update_wrap,
-    .finish_func = md2_finish_wrap,
-    .digest_func = md2,
-    .file_func = md2_file,
-    .hmac_starts_func = md2_hmac_starts_wrap,
-    .hmac_update_func = md2_hmac_update_wrap,
-    .hmac_finish_func = md2_hmac_finish_wrap,
-    .hmac_reset_func = md2_hmac_reset_wrap,
-    .hmac_func = md2_hmac,
-    .ctx_alloc_func = md2_ctx_alloc,
-    .ctx_free_func = md2_ctx_free,
+	POLARSSL_MD_MD2,
+	"MD2",
+	16,
+	md2_starts_wrap,
+	md2_update_wrap,
+	md2_finish_wrap,
+	md2,
+	md2_file,
+	md2_hmac_starts_wrap,
+	md2_hmac_update_wrap,
+	md2_hmac_finish_wrap,
+	md2_hmac_reset_wrap,
+	md2_hmac,
+	md2_ctx_alloc,
+	md2_ctx_free,
 };
 
 #endif
@@ -157,21 +157,21 @@
 }
 
 const md_info_t md4_info = {
-    .type = POLARSSL_MD_MD4,
-    .name = "MD4",
-    .size = 16,
-    .starts_func = md4_starts_wrap,
-    .update_func = md4_update_wrap,
-    .finish_func = md4_finish_wrap,
-    .digest_func = md4,
-    .file_func = md4_file,
-    .hmac_starts_func = md4_hmac_starts_wrap,
-    .hmac_update_func = md4_hmac_update_wrap,
-    .hmac_finish_func = md4_hmac_finish_wrap,
-    .hmac_reset_func = md4_hmac_reset_wrap,
-    .hmac_func = md4_hmac,
-    .ctx_alloc_func = md4_ctx_alloc,
-    .ctx_free_func = md4_ctx_free,
+	POLARSSL_MD_MD4,
+	"MD4",
+	16,
+	md4_starts_wrap,
+	md4_update_wrap,
+	md4_finish_wrap,
+	md4,
+	md4_file,
+	md4_hmac_starts_wrap,
+	md4_hmac_update_wrap,
+	md4_hmac_finish_wrap,
+	md4_hmac_reset_wrap,
+	md4_hmac,
+	md4_ctx_alloc,
+	md4_ctx_free,
 };
 
 #endif
@@ -224,21 +224,21 @@
 }
 
 const md_info_t md5_info = {
-    .type = POLARSSL_MD_MD5,
-    .name = "MD5",
-    .size = 16,
-    .starts_func = md5_starts_wrap,
-    .update_func = md5_update_wrap,
-    .finish_func = md5_finish_wrap,
-    .digest_func = md5,
-    .file_func = md5_file,
-    .hmac_starts_func = md5_hmac_starts_wrap,
-    .hmac_update_func = md5_hmac_update_wrap,
-    .hmac_finish_func = md5_hmac_finish_wrap,
-    .hmac_reset_func = md5_hmac_reset_wrap,
-    .hmac_func = md5_hmac,
-    .ctx_alloc_func = md5_ctx_alloc,
-    .ctx_free_func = md5_ctx_free,
+	POLARSSL_MD_MD5,
+	"MD5",
+	16,
+	md5_starts_wrap,
+	md5_update_wrap,
+	md5_finish_wrap,
+	md5,
+	md5_file,
+	md5_hmac_starts_wrap,
+	md5_hmac_update_wrap,
+	md5_hmac_finish_wrap,
+	md5_hmac_reset_wrap,
+	md5_hmac,
+	md5_ctx_alloc,
+	md5_ctx_free,
 };
 
 #endif
@@ -291,21 +291,21 @@
 }
 
 const md_info_t sha1_info = {
-    .type = POLARSSL_MD_SHA1,
-    .name = "SHA1",
-    .size = 20,
-    .starts_func = sha1_starts_wrap,
-    .update_func = sha1_update_wrap,
-    .finish_func = sha1_finish_wrap,
-    .digest_func = sha1,
-    .file_func = sha1_file,
-    .hmac_starts_func = sha1_hmac_starts_wrap,
-    .hmac_update_func = sha1_hmac_update_wrap,
-    .hmac_finish_func = sha1_hmac_finish_wrap,
-    .hmac_reset_func = sha1_hmac_reset_wrap,
-    .hmac_func = sha1_hmac,
-    .ctx_alloc_func = sha1_ctx_alloc,
-    .ctx_free_func = sha1_ctx_free,
+	POLARSSL_MD_SHA1,
+	"SHA1",
+	20,
+	sha1_starts_wrap,
+	sha1_update_wrap,
+	sha1_finish_wrap,
+	sha1,
+	sha1_file,
+	sha1_hmac_starts_wrap,
+	sha1_hmac_update_wrap,
+	sha1_hmac_finish_wrap,
+	sha1_hmac_reset_wrap,
+	sha1_hmac,
+	sha1_ctx_alloc,
+	sha1_ctx_free,
 };
 
 #endif
@@ -379,21 +379,21 @@
 }
 
 const md_info_t sha224_info = {
-    .type = POLARSSL_MD_SHA224,
-    .name = "SHA224",
-    .size = 28,
-    .starts_func = sha224_starts_wrap,
-    .update_func = sha224_update_wrap,
-    .finish_func = sha224_finish_wrap,
-    .digest_func = sha224_wrap,
-    .file_func = sha224_file_wrap,
-    .hmac_starts_func = sha224_hmac_starts_wrap,
-    .hmac_update_func = sha224_hmac_update_wrap,
-    .hmac_finish_func = sha224_hmac_finish_wrap,
-    .hmac_reset_func = sha224_hmac_reset_wrap,
-    .hmac_func = sha224_hmac_wrap,
-    .ctx_alloc_func = sha224_ctx_alloc,
-    .ctx_free_func = sha224_ctx_free,
+	POLARSSL_MD_SHA224,
+	"SHA224",
+	28,
+	sha224_starts_wrap,
+	sha224_update_wrap,
+	sha224_finish_wrap,
+	sha224_wrap,
+	sha224_file_wrap,
+	sha224_hmac_starts_wrap,
+	sha224_hmac_update_wrap,
+	sha224_hmac_finish_wrap,
+	sha224_hmac_reset_wrap,
+	sha224_hmac_wrap,
+	sha224_ctx_alloc,
+	sha224_ctx_free,
 };
 
 void sha256_starts_wrap( void *ctx )
@@ -460,21 +460,21 @@
 }
 
 const md_info_t sha256_info = {
-    .type = POLARSSL_MD_SHA256,
-    .name = "SHA256",
-    .size = 32,
-    .starts_func = sha256_starts_wrap,
-    .update_func = sha256_update_wrap,
-    .finish_func = sha256_finish_wrap,
-    .digest_func = sha256_wrap,
-    .file_func = sha256_file_wrap,
-    .hmac_starts_func = sha256_hmac_starts_wrap,
-    .hmac_update_func = sha256_hmac_update_wrap,
-    .hmac_finish_func = sha256_hmac_finish_wrap,
-    .hmac_reset_func = sha256_hmac_reset_wrap,
-    .hmac_func = sha256_hmac_wrap,
-    .ctx_alloc_func = sha256_ctx_alloc,
-    .ctx_free_func = sha256_ctx_free,
+	POLARSSL_MD_SHA256,
+	"SHA256",
+	32,
+	sha256_starts_wrap,
+	sha256_update_wrap,
+	sha256_finish_wrap,
+	sha256_wrap,
+	sha256_file_wrap,
+	sha256_hmac_starts_wrap,
+	sha256_hmac_update_wrap,
+	sha256_hmac_finish_wrap,
+	sha256_hmac_reset_wrap,
+	sha256_hmac_wrap,
+	sha256_ctx_alloc,
+	sha256_ctx_free,
 };
 
 #endif
@@ -545,21 +545,21 @@
 }
 
 const md_info_t sha384_info = {
-        .type = POLARSSL_MD_SHA384,
-        .name = "SHA384",
-        .size = 48,
-        .starts_func = sha384_starts_wrap,
-        .update_func = sha384_update_wrap,
-        .finish_func = sha384_finish_wrap,
-        .digest_func = sha384_wrap,
-        .file_func = sha384_file_wrap,
-        .hmac_starts_func = sha384_hmac_starts_wrap,
-        .hmac_update_func = sha384_hmac_update_wrap,
-        .hmac_finish_func = sha384_hmac_finish_wrap,
-        .hmac_reset_func = sha384_hmac_reset_wrap,
-        .hmac_func = sha384_hmac_wrap,
-        .ctx_alloc_func = sha384_ctx_alloc,
-        .ctx_free_func = sha384_ctx_free,
+	POLARSSL_MD_SHA384,
+	"SHA384",
+	48,
+	sha384_starts_wrap,
+	sha384_update_wrap,
+	sha384_finish_wrap,
+	sha384_wrap,
+	sha384_file_wrap,
+	sha384_hmac_starts_wrap,
+	sha384_hmac_update_wrap,
+	sha384_hmac_finish_wrap,
+	sha384_hmac_reset_wrap,
+	sha384_hmac_wrap,
+	sha384_ctx_alloc,
+	sha384_ctx_free,
 };
 
 void sha512_starts_wrap( void *ctx )
@@ -626,21 +626,21 @@
 }
 
 const md_info_t sha512_info = {
-    .type = POLARSSL_MD_SHA512,
-    .name = "SHA512",
-    .size = 64,
-    .starts_func = sha512_starts_wrap,
-    .update_func = sha512_update_wrap,
-    .finish_func = sha512_finish_wrap,
-    .digest_func = sha512_wrap,
-    .file_func = sha512_file_wrap,
-    .hmac_starts_func = sha512_hmac_starts_wrap,
-    .hmac_update_func = sha512_hmac_update_wrap,
-    .hmac_finish_func = sha512_hmac_finish_wrap,
-    .hmac_reset_func = sha512_hmac_reset_wrap,
-    .hmac_func = sha512_hmac_wrap,
-    .ctx_alloc_func = sha512_ctx_alloc,
-    .ctx_free_func = sha512_ctx_free,
+	POLARSSL_MD_SHA512,
+	"SHA512",
+	64,
+	sha512_starts_wrap,
+	sha512_update_wrap,
+	sha512_finish_wrap,
+	sha512_wrap,
+	sha512_file_wrap,
+	sha512_hmac_starts_wrap,
+	sha512_hmac_update_wrap,
+	sha512_hmac_finish_wrap,
+	sha512_hmac_reset_wrap,
+	sha512_hmac_wrap,
+	sha512_ctx_alloc,
+	sha512_ctx_free,
 };
 
 #endif