diff --git a/library/ecp_curves.c b/library/ecp_curves.c
index a7b7bc7..87edbb7 100644
--- a/library/ecp_curves.c
+++ b/library/ecp_curves.c
@@ -32,162 +32,275 @@
 /*
  * Domain parameters for secp192r1
  */
-#define SECP192R1_P \
-    "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF"
-#define SECP192R1_B \
-    "64210519E59C80E70FA7E9AB72243049FEB8DEECC146B9B1"
-#define SECP192R1_GX \
-    "188DA80EB03090F67CBF20EB43A18800F4FF0AFD82FF1012"
-#define SECP192R1_GY \
-    "07192B95FFC8DA78631011ED6B24CDD573F977A11E794811"
-#define SECP192R1_N \
-    "FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22831"
+static unsigned char secp192r1_p[] = {
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
+static unsigned char *secp192r1_a = NULL;
+static unsigned char secp192r1_b[] = {
+    0x64, 0x21, 0x05, 0x19, 0xE5, 0x9C, 0x80, 0xE7, 0x0F, 0xA7, 0xE9, 0xAB,
+    0x72, 0x24, 0x30, 0x49, 0xFE, 0xB8, 0xDE, 0xEC, 0xC1, 0x46, 0xB9, 0xB1 };
+static unsigned char secp192r1_gx[] = {
+    0x18, 0x8D, 0xA8, 0x0E, 0xB0, 0x30, 0x90, 0xF6, 0x7C, 0xBF, 0x20, 0xEB,
+    0x43, 0xA1, 0x88, 0x00, 0xF4, 0xFF, 0x0A, 0xFD, 0x82, 0xFF, 0x10, 0x12 };
+static unsigned char secp192r1_gy[] = {
+    0x07, 0x19, 0x2B, 0x95, 0xFF, 0xC8, 0xDA, 0x78, 0x63, 0x10, 0x11, 0xED,
+    0x6B, 0x24, 0xCD, 0xD5, 0x73, 0xF9, 0x77, 0xA1, 0x1E, 0x79, 0x48, 0x11 };
+static unsigned char secp192r1_n[] = {
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0x99, 0xDE, 0xF8, 0x36, 0x14, 0x6B, 0xC9, 0xB1, 0xB4, 0xD2, 0x28, 0x31 };
 
 /*
  * Domain parameters for secp224r1
  */
-#define SECP224R1_P \
-    "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001"
-#define SECP224R1_B \
-    "B4050A850C04B3ABF54132565044B0B7D7BFD8BA270B39432355FFB4"
-#define SECP224R1_GX \
-    "B70E0CBD6BB4BF7F321390B94A03C1D356C21122343280D6115C1D21"
-#define SECP224R1_GY \
-    "BD376388B5F723FB4C22DFE6CD4375A05A07476444D5819985007E34"
-#define SECP224R1_N \
-    "FFFFFFFFFFFFFFFFFFFFFFFFFFFF16A2E0B8F03E13DD29455C5C2A3D"
+static unsigned char secp224r1_p[] = {
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x01 };
+static unsigned char *secp224r1_a = NULL;
+static unsigned char secp224r1_b[] = {
+    0xB4, 0x05, 0x0A, 0x85, 0x0C, 0x04, 0xB3, 0xAB, 0xF5, 0x41, 0x32, 0x56,
+    0x50, 0x44, 0xB0, 0xB7, 0xD7, 0xBF, 0xD8, 0xBA, 0x27, 0x0B, 0x39, 0x43,
+    0x23, 0x55, 0xFF, 0xB4 };
+static unsigned char secp224r1_gx[] = {
+    0xB7, 0x0E, 0x0C, 0xBD, 0x6B, 0xB4, 0xBF, 0x7F, 0x32, 0x13, 0x90, 0xB9,
+    0x4A, 0x03, 0xC1, 0xD3, 0x56, 0xC2, 0x11, 0x22, 0x34, 0x32, 0x80, 0xD6,
+    0x11, 0x5C, 0x1D, 0x21 };
+static unsigned char secp224r1_gy[] = {
+    0xBD, 0x37, 0x63, 0x88, 0xB5, 0xF7, 0x23, 0xFB, 0x4C, 0x22, 0xDF, 0xE6,
+    0xCD, 0x43, 0x75, 0xA0, 0x5A, 0x07, 0x47, 0x64, 0x44, 0xD5, 0x81, 0x99,
+    0x85, 0x00, 0x7E, 0x34 };
+static unsigned char secp224r1_n[] = {
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0x16, 0xA2, 0xE0, 0xB8, 0xF0, 0x3E, 0x13, 0xDD, 0x29, 0x45,
+    0x5C, 0x5C, 0x2A, 0x3D };
 
 /*
  * Domain parameters for secp256r1
  */
-#define SECP256R1_P \
-    "FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF"
-#define SECP256R1_B \
-    "5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B"
-#define SECP256R1_GX \
-    "6B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296"
-#define SECP256R1_GY \
-    "4FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5"
-#define SECP256R1_N \
-    "FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551"
+static unsigned char secp256r1_p[] = {
+    0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
+static unsigned char *secp256r1_a = NULL;
+static unsigned char secp256r1_b[] = {
+    0x5A, 0xC6, 0x35, 0xD8, 0xAA, 0x3A, 0x93, 0xE7, 0xB3, 0xEB, 0xBD, 0x55,
+    0x76, 0x98, 0x86, 0xBC, 0x65, 0x1D, 0x06, 0xB0, 0xCC, 0x53, 0xB0, 0xF6,
+    0x3B, 0xCE, 0x3C, 0x3E, 0x27, 0xD2, 0x60, 0x4B };
+static unsigned char secp256r1_gx[] = {
+    0x6B, 0x17, 0xD1, 0xF2, 0xE1, 0x2C, 0x42, 0x47, 0xF8, 0xBC, 0xE6, 0xE5,
+    0x63, 0xA4, 0x40, 0xF2, 0x77, 0x03, 0x7D, 0x81, 0x2D, 0xEB, 0x33, 0xA0,
+    0xF4, 0xA1, 0x39, 0x45, 0xD8, 0x98, 0xC2, 0x96 };
+static unsigned char secp256r1_gy[] = {
+    0x4F, 0xE3, 0x42, 0xE2, 0xFE, 0x1A, 0x7F, 0x9B, 0x8E, 0xE7, 0xEB, 0x4A,
+    0x7C, 0x0F, 0x9E, 0x16, 0x2B, 0xCE, 0x33, 0x57, 0x6B, 0x31, 0x5E, 0xCE,
+    0xCB, 0xB6, 0x40, 0x68, 0x37, 0xBF, 0x51, 0xF5 };
+static unsigned char secp256r1_n[] = {
+    0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xBC, 0xE6, 0xFA, 0xAD, 0xA7, 0x17, 0x9E, 0x84,
+    0xF3, 0xB9, 0xCA, 0xC2, 0xFC, 0x63, 0x25, 0x51 };
 
 /*
  * Domain parameters for secp384r1
  */
-#define SECP384R1_P \
-    "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" \
-    "FFFFFFFFFFFFFFFEFFFFFFFF0000000000000000FFFFFFFF"
-#define SECP384R1_B \
-    "B3312FA7E23EE7E4988E056BE3F82D19181D9C6EFE814112" \
-    "0314088F5013875AC656398D8A2ED19D2A85C8EDD3EC2AEF"
-#define SECP384R1_GX \
-    "AA87CA22BE8B05378EB1C71EF320AD746E1D3B628BA79B98" \
-    "59F741E082542A385502F25DBF55296C3A545E3872760AB7"
-#define SECP384R1_GY \
-    "3617DE4A96262C6F5D9E98BF9292DC29F8F41DBD289A147C" \
-    "E9DA3113B5F0B8C00A60B1CE1D7E819D7A431D7C90EA0E5F"
-#define SECP384R1_N \
-    "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" \
-    "C7634D81F4372DDF581A0DB248B0A77AECEC196ACCC52973"
+static unsigned char secp384r1_p[] = {
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF };
+static unsigned char *secp384r1_a = NULL;
+static unsigned char secp384r1_b[] = {
+    0xB3, 0x31, 0x2F, 0xA7, 0xE2, 0x3E, 0xE7, 0xE4, 0x98, 0x8E, 0x05, 0x6B,
+    0xE3, 0xF8, 0x2D, 0x19, 0x18, 0x1D, 0x9C, 0x6E, 0xFE, 0x81, 0x41, 0x12,
+    0x03, 0x14, 0x08, 0x8F, 0x50, 0x13, 0x87, 0x5A, 0xC6, 0x56, 0x39, 0x8D,
+    0x8A, 0x2E, 0xD1, 0x9D, 0x2A, 0x85, 0xC8, 0xED, 0xD3, 0xEC, 0x2A, 0xEF };
+static unsigned char secp384r1_gx[] = {
+    0xAA, 0x87, 0xCA, 0x22, 0xBE, 0x8B, 0x05, 0x37, 0x8E, 0xB1, 0xC7, 0x1E,
+    0xF3, 0x20, 0xAD, 0x74, 0x6E, 0x1D, 0x3B, 0x62, 0x8B, 0xA7, 0x9B, 0x98,
+    0x59, 0xF7, 0x41, 0xE0, 0x82, 0x54, 0x2A, 0x38, 0x55, 0x02, 0xF2, 0x5D,
+    0xBF, 0x55, 0x29, 0x6C, 0x3A, 0x54, 0x5E, 0x38, 0x72, 0x76, 0x0A, 0xB7 };
+static unsigned char secp384r1_gy[] = {
+    0x36, 0x17, 0xDE, 0x4A, 0x96, 0x26, 0x2C, 0x6F, 0x5D, 0x9E, 0x98, 0xBF,
+    0x92, 0x92, 0xDC, 0x29, 0xF8, 0xF4, 0x1D, 0xBD, 0x28, 0x9A, 0x14, 0x7C,
+    0xE9, 0xDA, 0x31, 0x13, 0xB5, 0xF0, 0xB8, 0xC0, 0x0A, 0x60, 0xB1, 0xCE,
+    0x1D, 0x7E, 0x81, 0x9D, 0x7A, 0x43, 0x1D, 0x7C, 0x90, 0xEA, 0x0E, 0x5F };
+static unsigned char secp384r1_n[] = {
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xC7, 0x63, 0x4D, 0x81, 0xF4, 0x37, 0x2D, 0xDF, 0x58, 0x1A, 0x0D, 0xB2,
+    0x48, 0xB0, 0xA7, 0x7A, 0xEC, 0xEC, 0x19, 0x6A, 0xCC, 0xC5, 0x29, 0x73 };
 
 /*
  * Domain parameters for secp521r1
  */
-#define SECP521R1_P \
-    "000001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" \
-    "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" \
-    "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
-#define SECP521R1_B \
-    "00000051953EB9618E1C9A1F929A21A0B68540EEA2DA725B" \
-    "99B315F3B8B489918EF109E156193951EC7E937B1652C0BD" \
-    "3BB1BF073573DF883D2C34F1EF451FD46B503F00"
-#define SECP521R1_GX \
-    "000000C6858E06B70404E9CD9E3ECB662395B4429C648139" \
-    "053FB521F828AF606B4D3DBAA14B5E77EFE75928FE1DC127" \
-    "A2FFA8DE3348B3C1856A429BF97E7E31C2E5BD66"
-#define SECP521R1_GY \
-    "0000011839296A789A3BC0045C8A5FB42C7D1BD998F54449" \
-    "579B446817AFBD17273E662C97EE72995EF42640C550B901" \
-    "3FAD0761353C7086A272C24088BE94769FD16650"
-#define SECP521R1_N \
-    "000001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" \
-    "FFFFFFFFFFFFFFFFFFFFFFFA51868783BF2F966B7FCC0148" \
-    "F709A5D03BB5C9B8899C47AEBB6FB71E91386409"
+static unsigned char secp521r1_p[] = {
+    0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
+static unsigned char *secp521r1_a = NULL;
+static unsigned char secp521r1_b[] = {
+    0x00, 0x51, 0x95, 0x3E, 0xB9, 0x61, 0x8E, 0x1C, 0x9A, 0x1F, 0x92, 0x9A,
+    0x21, 0xA0, 0xB6, 0x85, 0x40, 0xEE, 0xA2, 0xDA, 0x72, 0x5B, 0x99, 0xB3,
+    0x15, 0xF3, 0xB8, 0xB4, 0x89, 0x91, 0x8E, 0xF1, 0x09, 0xE1, 0x56, 0x19,
+    0x39, 0x51, 0xEC, 0x7E, 0x93, 0x7B, 0x16, 0x52, 0xC0, 0xBD, 0x3B, 0xB1,
+    0xBF, 0x07, 0x35, 0x73, 0xDF, 0x88, 0x3D, 0x2C, 0x34, 0xF1, 0xEF, 0x45,
+    0x1F, 0xD4, 0x6B, 0x50, 0x3F, 0x00 };
+static unsigned char secp521r1_gx[] = {
+    0x00, 0xC6, 0x85, 0x8E, 0x06, 0xB7, 0x04, 0x04, 0xE9, 0xCD, 0x9E, 0x3E,
+    0xCB, 0x66, 0x23, 0x95, 0xB4, 0x42, 0x9C, 0x64, 0x81, 0x39, 0x05, 0x3F,
+    0xB5, 0x21, 0xF8, 0x28, 0xAF, 0x60, 0x6B, 0x4D, 0x3D, 0xBA, 0xA1, 0x4B,
+    0x5E, 0x77, 0xEF, 0xE7, 0x59, 0x28, 0xFE, 0x1D, 0xC1, 0x27, 0xA2, 0xFF,
+    0xA8, 0xDE, 0x33, 0x48, 0xB3, 0xC1, 0x85, 0x6A, 0x42, 0x9B, 0xF9, 0x7E,
+    0x7E, 0x31, 0xC2, 0xE5, 0xBD, 0x66 };
+static unsigned char secp521r1_gy[] = {
+    0x01, 0x18, 0x39, 0x29, 0x6A, 0x78, 0x9A, 0x3B, 0xC0, 0x04, 0x5C, 0x8A,
+    0x5F, 0xB4, 0x2C, 0x7D, 0x1B, 0xD9, 0x98, 0xF5, 0x44, 0x49, 0x57, 0x9B,
+    0x44, 0x68, 0x17, 0xAF, 0xBD, 0x17, 0x27, 0x3E, 0x66, 0x2C, 0x97, 0xEE,
+    0x72, 0x99, 0x5E, 0xF4, 0x26, 0x40, 0xC5, 0x50, 0xB9, 0x01, 0x3F, 0xAD,
+    0x07, 0x61, 0x35, 0x3C, 0x70, 0x86, 0xA2, 0x72, 0xC2, 0x40, 0x88, 0xBE,
+    0x94, 0x76, 0x9F, 0xD1, 0x66, 0x50 };
+static unsigned char secp521r1_n[] = {
+    0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFA, 0x51, 0x86,
+    0x87, 0x83, 0xBF, 0x2F, 0x96, 0x6B, 0x7F, 0xCC, 0x01, 0x48, 0xF7, 0x09,
+    0xA5, 0xD0, 0x3B, 0xB5, 0xC9, 0xB8, 0x89, 0x9C, 0x47, 0xAE, 0xBB, 0x6F,
+    0xB7, 0x1E, 0x91, 0x38, 0x64, 0x09 };
 
 /*
  * Domain parameters for brainpoolP256r1 (RFC 5639 3.4)
  */
-#define BP256R1_P \
-    "A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F6E5377"
-#define BP256R1_A \
-    "7D5A0975FC2C3057EEF67530417AFFE7FB8055C126DC5C6CE94A4B44F330B5D9"
-#define BP256R1_B \
-    "26DC5C6CE94A4B44F330B5D9BBD77CBF958416295CF7E1CE6BCCDC18FF8C07B6"
-#define BP256R1_GX \
-    "8BD2AEB9CB7E57CB2C4B482FFC81B7AFB9DE27E1E3BD23C23A4453BD9ACE3262"
-#define BP256R1_GY \
-    "547EF835C3DAC4FD97F8461A14611DC9C27745132DED8E545C1D54C72F046997"
-#define BP256R1_N \
-    "A9FB57DBA1EEA9BC3E660A909D838D718C397AA3B561A6F7901E0E82974856A7"
+static unsigned char brainpoolP256r1_p[] = {
+    0xA9, 0xFB, 0x57, 0xDB, 0xA1, 0xEE, 0xA9, 0xBC, 0x3E, 0x66, 0x0A, 0x90,
+    0x9D, 0x83, 0x8D, 0x72, 0x6E, 0x3B, 0xF6, 0x23, 0xD5, 0x26, 0x20, 0x28,
+    0x20, 0x13, 0x48, 0x1D, 0x1F, 0x6E, 0x53, 0x77 };
+static unsigned char brainpoolP256r1_a[] = {
+    0x7D, 0x5A, 0x09, 0x75, 0xFC, 0x2C, 0x30, 0x57, 0xEE, 0xF6, 0x75, 0x30,
+    0x41, 0x7A, 0xFF, 0xE7, 0xFB, 0x80, 0x55, 0xC1, 0x26, 0xDC, 0x5C, 0x6C,
+    0xE9, 0x4A, 0x4B, 0x44, 0xF3, 0x30, 0xB5, 0xD9 };
+static unsigned char brainpoolP256r1_b[] = {
+    0x26, 0xDC, 0x5C, 0x6C, 0xE9, 0x4A, 0x4B, 0x44, 0xF3, 0x30, 0xB5, 0xD9,
+    0xBB, 0xD7, 0x7C, 0xBF, 0x95, 0x84, 0x16, 0x29, 0x5C, 0xF7, 0xE1, 0xCE,
+    0x6B, 0xCC, 0xDC, 0x18, 0xFF, 0x8C, 0x07, 0xB6 };
+static unsigned char brainpoolP256r1_gx[] = {
+    0x8B, 0xD2, 0xAE, 0xB9, 0xCB, 0x7E, 0x57, 0xCB, 0x2C, 0x4B, 0x48, 0x2F,
+    0xFC, 0x81, 0xB7, 0xAF, 0xB9, 0xDE, 0x27, 0xE1, 0xE3, 0xBD, 0x23, 0xC2,
+    0x3A, 0x44, 0x53, 0xBD, 0x9A, 0xCE, 0x32, 0x62 };
+static unsigned char brainpoolP256r1_gy[] = {
+    0x54, 0x7E, 0xF8, 0x35, 0xC3, 0xDA, 0xC4, 0xFD, 0x97, 0xF8, 0x46, 0x1A,
+    0x14, 0x61, 0x1D, 0xC9, 0xC2, 0x77, 0x45, 0x13, 0x2D, 0xED, 0x8E, 0x54,
+    0x5C, 0x1D, 0x54, 0xC7, 0x2F, 0x04, 0x69, 0x97 };
+static unsigned char brainpoolP256r1_n[] = {
+    0xA9, 0xFB, 0x57, 0xDB, 0xA1, 0xEE, 0xA9, 0xBC, 0x3E, 0x66, 0x0A, 0x90,
+    0x9D, 0x83, 0x8D, 0x71, 0x8C, 0x39, 0x7A, 0xA3, 0xB5, 0x61, 0xA6, 0xF7,
+    0x90, 0x1E, 0x0E, 0x82, 0x97, 0x48, 0x56, 0xA7 };
 
 /*
  * Domain parameters for brainpoolP384r1 (RFC 5639 3.6)
  */
-#define BP384R1_P \
-    "8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B412B1DA197FB711" \
-    "23ACD3A729901D1A71874700133107EC53"
-#define BP384R1_A \
-    "7BC382C63D8C150C3C72080ACE05AFA0C2BEA28E4FB22787139165EFBA91F9" \
-    "0F8AA5814A503AD4EB04A8C7DD22CE2826"
-#define BP384R1_B \
-    "04A8C7DD22CE28268B39B55416F0447C2FB77DE107DCD2A62E880EA53EEB62" \
-    "D57CB4390295DBC9943AB78696FA504C11"
-#define BP384R1_GX \
-    "1D1C64F068CF45FFA2A63A81B7C13F6B8847A3E77EF14FE3DB7FCAFE0CBD10" \
-    "E8E826E03436D646AAEF87B2E247D4AF1E"
-#define BP384R1_GY \
-    "8ABE1D7520F9C2A45CB1EB8E95CFD55262B70B29FEEC5864E19C054FF99129" \
-    "280E4646217791811142820341263C5315"
-#define BP384R1_N \
-    "8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B31F166E6CAC0425" \
-    "A7CF3AB6AF6B7FC3103B883202E9046565"
+static unsigned char brainpoolP384r1_p[] = {
+    0x8C, 0xB9, 0x1E, 0x82, 0xA3, 0x38, 0x6D, 0x28, 0x0F, 0x5D, 0x6F, 0x7E,
+    0x50, 0xE6, 0x41, 0xDF, 0x15, 0x2F, 0x71, 0x09, 0xED, 0x54, 0x56, 0xB4,
+    0x12, 0xB1, 0xDA, 0x19, 0x7F, 0xB7, 0x11, 0x23, 0xAC, 0xD3, 0xA7, 0x29,
+    0x90, 0x1D, 0x1A, 0x71, 0x87, 0x47, 0x00, 0x13, 0x31, 0x07, 0xEC, 0x53 };
+static unsigned char brainpoolP384r1_a[] = {
+    0x7B, 0xC3, 0x82, 0xC6, 0x3D, 0x8C, 0x15, 0x0C, 0x3C, 0x72, 0x08, 0x0A,
+    0xCE, 0x05, 0xAF, 0xA0, 0xC2, 0xBE, 0xA2, 0x8E, 0x4F, 0xB2, 0x27, 0x87,
+    0x13, 0x91, 0x65, 0xEF, 0xBA, 0x91, 0xF9, 0x0F, 0x8A, 0xA5, 0x81, 0x4A,
+    0x50, 0x3A, 0xD4, 0xEB, 0x04, 0xA8, 0xC7, 0xDD, 0x22, 0xCE, 0x28, 0x26 };
+static unsigned char brainpoolP384r1_b[] = {
+    0x04, 0xA8, 0xC7, 0xDD, 0x22, 0xCE, 0x28, 0x26, 0x8B, 0x39, 0xB5, 0x54,
+    0x16, 0xF0, 0x44, 0x7C, 0x2F, 0xB7, 0x7D, 0xE1, 0x07, 0xDC, 0xD2, 0xA6,
+    0x2E, 0x88, 0x0E, 0xA5, 0x3E, 0xEB, 0x62, 0xD5, 0x7C, 0xB4, 0x39, 0x02,
+    0x95, 0xDB, 0xC9, 0x94, 0x3A, 0xB7, 0x86, 0x96, 0xFA, 0x50, 0x4C, 0x11 };
+static unsigned char brainpoolP384r1_gx[] = {
+    0x1D, 0x1C, 0x64, 0xF0, 0x68, 0xCF, 0x45, 0xFF, 0xA2, 0xA6, 0x3A, 0x81,
+    0xB7, 0xC1, 0x3F, 0x6B, 0x88, 0x47, 0xA3, 0xE7, 0x7E, 0xF1, 0x4F, 0xE3,
+    0xDB, 0x7F, 0xCA, 0xFE, 0x0C, 0xBD, 0x10, 0xE8, 0xE8, 0x26, 0xE0, 0x34,
+    0x36, 0xD6, 0x46, 0xAA, 0xEF, 0x87, 0xB2, 0xE2, 0x47, 0xD4, 0xAF, 0x1E };
+static unsigned char brainpoolP384r1_gy[] = {
+    0x8A, 0xBE, 0x1D, 0x75, 0x20, 0xF9, 0xC2, 0xA4, 0x5C, 0xB1, 0xEB, 0x8E,
+    0x95, 0xCF, 0xD5, 0x52, 0x62, 0xB7, 0x0B, 0x29, 0xFE, 0xEC, 0x58, 0x64,
+    0xE1, 0x9C, 0x05, 0x4F, 0xF9, 0x91, 0x29, 0x28, 0x0E, 0x46, 0x46, 0x21,
+    0x77, 0x91, 0x81, 0x11, 0x42, 0x82, 0x03, 0x41, 0x26, 0x3C, 0x53, 0x15 };
+static unsigned char brainpoolP384r1_n[] = {
+    0x8C, 0xB9, 0x1E, 0x82, 0xA3, 0x38, 0x6D, 0x28, 0x0F, 0x5D, 0x6F, 0x7E,
+    0x50, 0xE6, 0x41, 0xDF, 0x15, 0x2F, 0x71, 0x09, 0xED, 0x54, 0x56, 0xB3,
+    0x1F, 0x16, 0x6E, 0x6C, 0xAC, 0x04, 0x25, 0xA7, 0xCF, 0x3A, 0xB6, 0xAF,
+    0x6B, 0x7F, 0xC3, 0x10, 0x3B, 0x88, 0x32, 0x02, 0xE9, 0x04, 0x65, 0x65 };
 
 /*
  * Domain parameters for brainpoolP512r1 (RFC 5639 3.7)
  */
-#define BP512R1_P \
-    "AADD9DB8DBE9C48B3FD4E6AE33C9FC07CB308DB3B3C9D20ED6639CCA703308" \
-    "717D4D9B009BC66842AECDA12AE6A380E62881FF2F2D82C68528AA6056583A48F3"
-#define BP512R1_A \
-    "7830A3318B603B89E2327145AC234CC594CBDD8D3DF91610A83441CAEA9863" \
-    "BC2DED5D5AA8253AA10A2EF1C98B9AC8B57F1117A72BF2C7B9E7C1AC4D77FC94CA"
-#define BP512R1_B \
-    "3DF91610A83441CAEA9863BC2DED5D5AA8253AA10A2EF1C98B9AC8B57F1117" \
-    "A72BF2C7B9E7C1AC4D77FC94CADC083E67984050B75EBAE5DD2809BD638016F723"
-#define BP512R1_GX \
-    "81AEE4BDD82ED9645A21322E9C4C6A9385ED9F70B5D916C1B43B62EEF4D009" \
-    "8EFF3B1F78E2D0D48D50D1687B93B97D5F7C6D5047406A5E688B352209BCB9F822"
-#define BP512R1_GY \
-    "7DDE385D566332ECC0EABFA9CF7822FDF209F70024A57B1AA000C55B881F81" \
-    "11B2DCDE494A5F485E5BCA4BD88A2763AED1CA2B2FA8F0540678CD1E0F3AD80892"
-#define BP512R1_N \
-    "AADD9DB8DBE9C48B3FD4E6AE33C9FC07CB308DB3B3C9D20ED6639CCA703308" \
-    "70553E5C414CA92619418661197FAC10471DB1D381085DDADDB58796829CA90069"
+static unsigned char brainpoolP512r1_p[] = {
+    0xAA, 0xDD, 0x9D, 0xB8, 0xDB, 0xE9, 0xC4, 0x8B, 0x3F, 0xD4, 0xE6, 0xAE,
+    0x33, 0xC9, 0xFC, 0x07, 0xCB, 0x30, 0x8D, 0xB3, 0xB3, 0xC9, 0xD2, 0x0E,
+    0xD6, 0x63, 0x9C, 0xCA, 0x70, 0x33, 0x08, 0x71, 0x7D, 0x4D, 0x9B, 0x00,
+    0x9B, 0xC6, 0x68, 0x42, 0xAE, 0xCD, 0xA1, 0x2A, 0xE6, 0xA3, 0x80, 0xE6,
+    0x28, 0x81, 0xFF, 0x2F, 0x2D, 0x82, 0xC6, 0x85, 0x28, 0xAA, 0x60, 0x56,
+    0x58, 0x3A, 0x48, 0xF3 };
+static unsigned char brainpoolP512r1_a[] = {
+    0x78, 0x30, 0xA3, 0x31, 0x8B, 0x60, 0x3B, 0x89, 0xE2, 0x32, 0x71, 0x45,
+    0xAC, 0x23, 0x4C, 0xC5, 0x94, 0xCB, 0xDD, 0x8D, 0x3D, 0xF9, 0x16, 0x10,
+    0xA8, 0x34, 0x41, 0xCA, 0xEA, 0x98, 0x63, 0xBC, 0x2D, 0xED, 0x5D, 0x5A,
+    0xA8, 0x25, 0x3A, 0xA1, 0x0A, 0x2E, 0xF1, 0xC9, 0x8B, 0x9A, 0xC8, 0xB5,
+    0x7F, 0x11, 0x17, 0xA7, 0x2B, 0xF2, 0xC7, 0xB9, 0xE7, 0xC1, 0xAC, 0x4D,
+    0x77, 0xFC, 0x94, 0xCA };
+static unsigned char brainpoolP512r1_b[] = {
+    0x3D, 0xF9, 0x16, 0x10, 0xA8, 0x34, 0x41, 0xCA, 0xEA, 0x98, 0x63, 0xBC,
+    0x2D, 0xED, 0x5D, 0x5A, 0xA8, 0x25, 0x3A, 0xA1, 0x0A, 0x2E, 0xF1, 0xC9,
+    0x8B, 0x9A, 0xC8, 0xB5, 0x7F, 0x11, 0x17, 0xA7, 0x2B, 0xF2, 0xC7, 0xB9,
+    0xE7, 0xC1, 0xAC, 0x4D, 0x77, 0xFC, 0x94, 0xCA, 0xDC, 0x08, 0x3E, 0x67,
+    0x98, 0x40, 0x50, 0xB7, 0x5E, 0xBA, 0xE5, 0xDD, 0x28, 0x09, 0xBD, 0x63,
+    0x80, 0x16, 0xF7, 0x23 };
+static unsigned char brainpoolP512r1_gx[] = {
+    0x81, 0xAE, 0xE4, 0xBD, 0xD8, 0x2E, 0xD9, 0x64, 0x5A, 0x21, 0x32, 0x2E,
+    0x9C, 0x4C, 0x6A, 0x93, 0x85, 0xED, 0x9F, 0x70, 0xB5, 0xD9, 0x16, 0xC1,
+    0xB4, 0x3B, 0x62, 0xEE, 0xF4, 0xD0, 0x09, 0x8E, 0xFF, 0x3B, 0x1F, 0x78,
+    0xE2, 0xD0, 0xD4, 0x8D, 0x50, 0xD1, 0x68, 0x7B, 0x93, 0xB9, 0x7D, 0x5F,
+    0x7C, 0x6D, 0x50, 0x47, 0x40, 0x6A, 0x5E, 0x68, 0x8B, 0x35, 0x22, 0x09,
+    0xBC, 0xB9, 0xF8, 0x22 };
+static unsigned char brainpoolP512r1_gy[] = {
+    0x7D, 0xDE, 0x38, 0x5D, 0x56, 0x63, 0x32, 0xEC, 0xC0, 0xEA, 0xBF, 0xA9,
+    0xCF, 0x78, 0x22, 0xFD, 0xF2, 0x09, 0xF7, 0x00, 0x24, 0xA5, 0x7B, 0x1A,
+    0xA0, 0x00, 0xC5, 0x5B, 0x88, 0x1F, 0x81, 0x11, 0xB2, 0xDC, 0xDE, 0x49,
+    0x4A, 0x5F, 0x48, 0x5E, 0x5B, 0xCA, 0x4B, 0xD8, 0x8A, 0x27, 0x63, 0xAE,
+    0xD1, 0xCA, 0x2B, 0x2F, 0xA8, 0xF0, 0x54, 0x06, 0x78, 0xCD, 0x1E, 0x0F,
+    0x3A, 0xD8, 0x08, 0x92 };
+static unsigned char brainpoolP512r1_n[] = {
+    0xAA, 0xDD, 0x9D, 0xB8, 0xDB, 0xE9, 0xC4, 0x8B, 0x3F, 0xD4, 0xE6, 0xAE,
+    0x33, 0xC9, 0xFC, 0x07, 0xCB, 0x30, 0x8D, 0xB3, 0xB3, 0xC9, 0xD2, 0x0E,
+    0xD6, 0x63, 0x9C, 0xCA, 0x70, 0x33, 0x08, 0x70, 0x55, 0x3E, 0x5C, 0x41,
+    0x4C, 0xA9, 0x26, 0x19, 0x41, 0x86, 0x61, 0x19, 0x7F, 0xAC, 0x10, 0x47,
+    0x1D, 0xB1, 0xD3, 0x81, 0x08, 0x5D, 0xDA, 0xDD, 0xB5, 0x87, 0x96, 0x82,
+    0x9C, 0xA9, 0x00, 0x69 };
 
 /*
- * Import an ECP group from ASCII strings, general case (A used)
+ * Import an ECP group from binary
  */
-static int ecp_group_read_string_gen( ecp_group *grp, int radix,
-                           const char *p, const char *a, const char *b,
-                           const char *gx, const char *gy, const char *n)
+static int ecp_group_read_binary( ecp_group *grp,
+                                  const unsigned char *p,  size_t plen,
+                                  const unsigned char *a,  size_t alen,
+                                  const unsigned char *b,  size_t blen,
+                                  const unsigned char *gx, size_t gxlen,
+                                  const unsigned char *gy, size_t gylen,
+                                  const unsigned char *n,  size_t nlen)
 {
     int ret;
 
-    MPI_CHK( mpi_read_string( &grp->P, radix, p ) );
-    MPI_CHK( mpi_read_string( &grp->A, radix, a ) );
-    MPI_CHK( mpi_read_string( &grp->B, radix, b ) );
-    MPI_CHK( ecp_point_read_string( &grp->G, radix, gx, gy ) );
-    MPI_CHK( mpi_read_string( &grp->N, radix, n ) );
+    MPI_CHK( mpi_read_binary( &grp->P, p, plen ) );
+    if( a != NULL )
+        MPI_CHK( mpi_read_binary( &grp->A, a, alen ) );
+    else
+        MPI_CHK( mpi_sub_int( &grp->A, &grp->P, 3 ) );
+    MPI_CHK( mpi_read_binary( &grp->B, b, blen ) );
+    MPI_CHK( mpi_read_binary( &grp->N, n, nlen ) );
+
+    MPI_CHK( mpi_read_binary( &grp->G.X, gx, gxlen ) );
+    MPI_CHK( mpi_read_binary( &grp->G.Y, gy, gylen ) );
+    MPI_CHK( mpi_lset( &grp->G.Z, 1 ) );
 
     grp->pbits = mpi_msb( &grp->P );
     grp->nbits = mpi_msb( &grp->N );
@@ -208,6 +321,14 @@
 int ecp_mod_p521( mpi * );
 #endif
 
+#define LOAD_GROUP( G )     ecp_group_read_binary( grp,     \
+                            G ## _p,  sizeof( G ## _p  ),   \
+                            G ## _a,  sizeof( G ## _a  ),   \
+                            G ## _b,  sizeof( G ## _b  ),   \
+                            G ## _gx, sizeof( G ## _gx ),   \
+                            G ## _gy, sizeof( G ## _gy ),   \
+                            G ## _n,  sizeof( G ## _n  ) )
+
 /*
  * Set a group using well-known domain parameters
  */
@@ -222,9 +343,7 @@
 #if defined(POLARSSL_ECP_NIST_OPTIM)
             grp->modp = ecp_mod_p192;
 #endif
-            return( ecp_group_read_string( grp, 16,
-                        SECP192R1_P, SECP192R1_B,
-                        SECP192R1_GX, SECP192R1_GY, SECP192R1_N ) );
+            return( LOAD_GROUP( secp192r1 ) );
 #endif /* POLARSSL_ECP_DP_SECP192R1_ENABLED */
 
 #if defined(POLARSSL_ECP_DP_SECP224R1_ENABLED)
@@ -232,9 +351,7 @@
 #if defined(POLARSSL_ECP_NIST_OPTIM)
             grp->modp = ecp_mod_p224;
 #endif
-            return( ecp_group_read_string( grp, 16,
-                        SECP224R1_P, SECP224R1_B,
-                        SECP224R1_GX, SECP224R1_GY, SECP224R1_N ) );
+            return( LOAD_GROUP( secp224r1 ) );
 #endif /* POLARSSL_ECP_DP_SECP224R1_ENABLED */
 
 #if defined(POLARSSL_ECP_DP_SECP256R1_ENABLED)
@@ -242,9 +359,7 @@
 #if defined(POLARSSL_ECP_NIST_OPTIM)
             grp->modp = ecp_mod_p256;
 #endif
-            return( ecp_group_read_string( grp, 16,
-                        SECP256R1_P, SECP256R1_B,
-                        SECP256R1_GX, SECP256R1_GY, SECP256R1_N ) );
+            return( LOAD_GROUP( secp256r1 ) );
 #endif /* POLARSSL_ECP_DP_SECP256R1_ENABLED */
 
 #if defined(POLARSSL_ECP_DP_SECP384R1_ENABLED)
@@ -252,9 +367,7 @@
 #if defined(POLARSSL_ECP_NIST_OPTIM)
             grp->modp = ecp_mod_p384;
 #endif
-            return( ecp_group_read_string( grp, 16,
-                        SECP384R1_P, SECP384R1_B,
-                        SECP384R1_GX, SECP384R1_GY, SECP384R1_N ) );
+            return( LOAD_GROUP( secp384r1 ) );
 #endif /* POLARSSL_ECP_DP_SECP384R1_ENABLED */
 
 #if defined(POLARSSL_ECP_DP_SECP521R1_ENABLED)
@@ -262,30 +375,22 @@
 #if defined(POLARSSL_ECP_NIST_OPTIM)
             grp->modp = ecp_mod_p521;
 #endif
-            return( ecp_group_read_string( grp, 16,
-                        SECP521R1_P, SECP521R1_B,
-                        SECP521R1_GX, SECP521R1_GY, SECP521R1_N ) );
+            return( LOAD_GROUP( secp521r1 ) );
 #endif /* POLARSSL_ECP_DP_SECP521R1_ENABLED */
 
 #if defined(POLARSSL_ECP_DP_BP256R1_ENABLED)
         case POLARSSL_ECP_DP_BP256R1:
-            return( ecp_group_read_string_gen( grp, 16,
-                        BP256R1_P, BP256R1_A, BP256R1_B,
-                        BP256R1_GX, BP256R1_GY, BP256R1_N ) );
+            return( LOAD_GROUP( brainpoolP256r1 ) );
 #endif /* POLARSSL_ECP_DP_BP256R1_ENABLED */
 
 #if defined(POLARSSL_ECP_DP_BP384R1_ENABLED)
         case POLARSSL_ECP_DP_BP384R1:
-            return( ecp_group_read_string_gen( grp, 16,
-                        BP384R1_P, BP384R1_A, BP384R1_B,
-                        BP384R1_GX, BP384R1_GY, BP384R1_N ) );
+            return( LOAD_GROUP( brainpoolP384r1 ) );
 #endif /* POLARSSL_ECP_DP_BP384R1_ENABLED */
 
 #if defined(POLARSSL_ECP_DP_BP512R1_ENABLED)
         case POLARSSL_ECP_DP_BP512R1:
-            return( ecp_group_read_string_gen( grp, 16,
-                        BP512R1_P, BP512R1_A, BP512R1_B,
-                        BP512R1_GX, BP512R1_GY, BP512R1_N ) );
+            return( LOAD_GROUP( brainpoolP512r1 ) );
 #endif /* POLARSSL_ECP_DP_BP512R1_ENABLED */
 
         default:
