[Cryptech-Commits] [sw/libhal] 32/58: Debug modexp_fp() buffer handling. Add basic timing report. Compensate for PyCrypto's weird inversion of p and q when calculating CRT coefficients, and add key the key components PyCrypto doesn't bother pre-calculating to our test data.
git at cryptech.is
git at cryptech.is
Tue Jul 7 18:25:16 UTC 2015
This is an automated email from the git hooks/post-receive script.
sra at hactrn.net pushed a commit to branch master
in repository sw/libhal.
commit 8934e10e139d45e5bc9b6874b3c630461d55607c
Author: Rob Austein <sra at hactrn.net>
Date: Thu Jun 11 18:21:50 2015 -0400
Debug modexp_fp() buffer handling. Add basic timing report.
Compensate for PyCrypto's weird inversion of p and q when calculating
CRT coefficients, and add key the key components PyCrypto doesn't
bother pre-calculating to our test data.
---
rsa.c | 18 +-
tests/test-rsa.c | 46 ++-
tests/test-rsa.h | 974 ++++++++++++++++++++++++++++++------------------------
tests/test-rsa.py | 29 +-
4 files changed, 598 insertions(+), 469 deletions(-)
diff --git a/rsa.c b/rsa.c
index b61feb4..31c4f61 100644
--- a/rsa.c
+++ b/rsa.c
@@ -175,18 +175,18 @@ static hal_error_t modexp_fp(fp_int *msg, fp_int *exp, fp_int *mod, fp_int *res)
assert(msg != NULL && exp != NULL && mod != NULL && res != NULL);
- uint8_t msgbuf[(fp_unsigned_bin_size(msg) + 3) & ~3];
- uint8_t expbuf[(fp_unsigned_bin_size(exp) + 3) & ~3];
- uint8_t modbuf[(fp_unsigned_bin_size(mod) + 3) & ~3];
+ const size_t msg_len = fp_unsigned_bin_size(msg);
+ const size_t exp_len = fp_unsigned_bin_size(exp);
+ const size_t mod_len = fp_unsigned_bin_size(mod);
- if ((err = unpack_fp(msg, msgbuf, sizeof(msgbuf))) != HAL_OK ||
- (err = unpack_fp(exp, expbuf, sizeof(expbuf))) != HAL_OK ||
- (err = unpack_fp(mod, modbuf, sizeof(modbuf))) != HAL_OK)
- goto fail;
+ const size_t len = (MAX(MAX(msg_len, exp_len), mod_len) + 3) & ~3;
- uint8_t resbuf[FP_MAX_SIZE/8];
+ uint8_t msgbuf[len], expbuf[len], modbuf[len], resbuf[len];
- if ((err = hal_modexp(msgbuf, sizeof(msgbuf),
+ if ((err = unpack_fp(msg, msgbuf, sizeof(msgbuf))) != HAL_OK ||
+ (err = unpack_fp(exp, expbuf, sizeof(expbuf))) != HAL_OK ||
+ (err = unpack_fp(mod, modbuf, sizeof(modbuf))) != HAL_OK ||
+ (err = hal_modexp(msgbuf, sizeof(msgbuf),
expbuf, sizeof(expbuf),
modbuf, sizeof(modbuf),
resbuf, sizeof(resbuf))) != HAL_OK)
diff --git a/tests/test-rsa.c b/tests/test-rsa.c
index 51e1009..6925261 100644
--- a/tests/test-rsa.c
+++ b/tests/test-rsa.c
@@ -74,7 +74,6 @@ static int test_modexp(const char * const kind,
return 0;
}
- printf("OK\n");
return 1;
}
@@ -105,29 +104,36 @@ static int test_crt(const char * const kind, const rsa_tc_t * const tc)
return 0;
}
- printf("OK\n");
return 1;
}
+/*
+ * Time a test.
+ */
+
+static void _time_check(const struct timeval t0, const int ok)
+{
+ struct timeval t;
+ gettimeofday(&t, NULL);
+ t.tv_sec -= t0.tv_sec;
+ t.tv_usec = t0.tv_usec;
+ if (t.tv_usec < 0) {
+ t.tv_usec += 1000000;
+ t.tv_sec -= 1;
+ }
+ printf("Elapsed time %lu.%06lu seconds, %s\n",
+ (unsigned long) t.tv_sec,
+ (unsigned long) t.tv_usec,
+ ok ? "OK" : "FAILED");
+}
#define time_check(_expr_) \
do { \
- struct timeval _t1, _t2, _td; \
- gettimeofday(&_t1, NULL); \
+ struct timeval _t; \
+ gettimeofday(&_t, NULL); \
int _ok = (_expr_); \
- gettimeofday(&_t2, NULL); \
- _td.tv_sec = _t2.tv_sec - _t1.tv_sec; \
- _td.tv_usec = _t2.tv_usec - _t1.tv_usec; \
- if (_td.tv_usec < 0) { \
- _td.tv_usec += 1000000; \
- _td.tv_sec -= 1; \
- } \
- printf("%lu.%06lu %s\n", \
- (unsigned long) _td.tv_sec, \
- (unsigned long) _td.tv_usec, \
- _ok ? "OK" : "FAILED"); \
- if (!_ok) \
- return 0; \
+ _time_check(_t, _ok); \
+ ok &= _ok; \
} while (0)
/*
@@ -136,6 +142,8 @@ static int test_crt(const char * const kind, const rsa_tc_t * const tc)
static int test_rsa(const rsa_tc_t * const tc)
{
+ int ok = 1;
+
/* RSA encryption */
time_check(test_modexp("Verification", tc, &tc->s, &tc->e, &tc->m));
@@ -145,7 +153,7 @@ static int test_rsa(const rsa_tc_t * const tc)
/* RSA decyrption using CRT */
time_check(test_crt("Signature (CRT)", tc));
- return 1;
+ return ok;
}
int main(int argc, char *argv[])
@@ -172,6 +180,8 @@ int main(int argc, char *argv[])
hal_modexp_set_debug(1);
+ /* Normal test */
+
for (i = 0; i < (sizeof(rsa_tc)/sizeof(*rsa_tc)); i++)
if (!test_rsa(&rsa_tc[i]))
return 1;
diff --git a/tests/test-rsa.h b/tests/test-rsa.h
index 393d01e..400ffd0 100644
--- a/tests/test-rsa.h
+++ b/tests/test-rsa.h
@@ -8,35 +8,35 @@
/* 1024-bit RSA private key (PKCS #8)
-----BEGIN PRIVATE KEY-----
-MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAM9bbEIr5Siz6UEE
-H84ukARYDIcssB4nxuiKQ8vbfb8Ikt1o5MWQ3mZ7EgPg6KaUnq5n5hx8QtPHuAOi
-HdC+YbXqr1ei61jkCUNmv9sTG61pMXnVGSm2IbOo6qLPNV/wB9jYycDMCodTBlMb
-1sUvHr+60zikQygBqP7l66KSOAjFAgMBAAECgYBTemrK+QD4sfVlx1NGnlg8Z3Yj
-tUnx2fGqDH/ewi6NidYWbPQs1XWzrDhEd3cyGQMJE6sALMZ6nBzo2YtHTl3nNOfU
-UggVUfrXoDLaD9B2gQSWsdASo9INdeWhMvuvqpstdzUoOLCuwQw1+vNqEtYts56n
-GsoygdPp+JQSb/howQJBANaCMc2e3sDvg9Vrx4CbYwKzpkeHXGaprjVEYPRo5ElE
-NoJkpOSuBPBcDFN7MlZqeRe6yoADnjnD447Wld/1xMsCQQD3dxxEfU7hldoB72C0
-FloQ1/MBeOtj6mzEqFyg7CCdz1q/AUqnUFPzP2Y6X0Ax981zUK4qmcMa45hYzxUK
-VUavAkEAhqiChTcnVOzG0NJxEf35wLdwOdTyn4wDTXMYfjXeoVPN+Dsf/GJ1vUG7
-hyh+aBs82zWqa4RZ7p9XGdMBkO9i0wJAPgr35FgCYd5/JQMOHLiJ5jUuMM1PPuK0
-WG3Zo2LwHoCxQLgjLmWeVpsrlzDwWFbHhMTSlc2tM92iAYoRvWB58wJBAMoMTfsE
-byoZgUGzccsq1qeNm0qMPfozT79WeCQBAn6Cd8SQ/jJlxBxm9Tf8qZ4ZQ0LteghV
-SEDvFWBAZretHN0=
+MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAIwSaEpCTVJvbd4Z
+B1P8H9EgFlZqats7PeBIOlC2Q1zla7wBmNJkX5Jkez8tF3l22Sn99c6c6PuhyhzB
+dZtifQbZniKCJEzyby5MXZeSr20rPdrqiB9FX13mmtLN7ii4nLyAYFAQ4R8ZvdH2
+dRIWtxwhS7d4AyrWYhJkemIvSApfAgMBAAECgYAmL1Zy+AQwNuRSqawPvynFTuQI
+Bta+kTXbEJWlLyrKBlkKVb0djfNn6zCWFmrR2A53nh4Gh0wUXRTGJg8znvPKJPcp
+45znc7aGQFmDivvl5m/UkbqET6SB6JyCOCKzYa1Rtn3YFMkf/3MgzrWIhFv+UNH/
+I5lSjzJcCrN4mgI+AQJBALcTNa0mOWRXX+6jssbf65Cx6wmHsrrptXiP9gKfwdkx
+697EzyvPDL8xwL20O+xBFehj866O/f8nOPP47imOPoECQQDD3gU8wD8MeWLqYcXI
+AdERIuuk1VnL36QOzn9NoPF01DLJcrcbN24i5/9tcza3Kdec8fexJTh/PMBvR8Zr
+w5jfAkAnFgrXtNl7+suYf4qjuxroAZRUrIwUK+F6pAG5/bG9VVMudIZmrAXkrBKi
+beB9SEgNHYnhMtY3q4AVVohChwQBAkAR1I5Jf3691fcJOylUEcZEdxdYhAuOoac/
+qdCw8mvIpOCSshy1H5CpINGB1zEt72MvaF+SAr9n5dHmz3Pir4WlAkB/ZccJ5QBH
+uBP0/flXdmhG5lC3MTMiiE7Rls/3L2t6S4xVDnQ81RYf7Car53WN7qSVSZnhDGsn
+BJpghq2nYUH1
-----END PRIVATE KEY-----
*/
static const uint8_t n_1024[] = { /* key component n, 128 bytes */
- 0xcf, 0x5b, 0x6c, 0x42, 0x2b, 0xe5, 0x28, 0xb3, 0xe9, 0x41, 0x04, 0x1f,
- 0xce, 0x2e, 0x90, 0x04, 0x58, 0x0c, 0x87, 0x2c, 0xb0, 0x1e, 0x27, 0xc6,
- 0xe8, 0x8a, 0x43, 0xcb, 0xdb, 0x7d, 0xbf, 0x08, 0x92, 0xdd, 0x68, 0xe4,
- 0xc5, 0x90, 0xde, 0x66, 0x7b, 0x12, 0x03, 0xe0, 0xe8, 0xa6, 0x94, 0x9e,
- 0xae, 0x67, 0xe6, 0x1c, 0x7c, 0x42, 0xd3, 0xc7, 0xb8, 0x03, 0xa2, 0x1d,
- 0xd0, 0xbe, 0x61, 0xb5, 0xea, 0xaf, 0x57, 0xa2, 0xeb, 0x58, 0xe4, 0x09,
- 0x43, 0x66, 0xbf, 0xdb, 0x13, 0x1b, 0xad, 0x69, 0x31, 0x79, 0xd5, 0x19,
- 0x29, 0xb6, 0x21, 0xb3, 0xa8, 0xea, 0xa2, 0xcf, 0x35, 0x5f, 0xf0, 0x07,
- 0xd8, 0xd8, 0xc9, 0xc0, 0xcc, 0x0a, 0x87, 0x53, 0x06, 0x53, 0x1b, 0xd6,
- 0xc5, 0x2f, 0x1e, 0xbf, 0xba, 0xd3, 0x38, 0xa4, 0x43, 0x28, 0x01, 0xa8,
- 0xfe, 0xe5, 0xeb, 0xa2, 0x92, 0x38, 0x08, 0xc5
+ 0x8c, 0x12, 0x68, 0x4a, 0x42, 0x4d, 0x52, 0x6f, 0x6d, 0xde, 0x19, 0x07,
+ 0x53, 0xfc, 0x1f, 0xd1, 0x20, 0x16, 0x56, 0x6a, 0x6a, 0xdb, 0x3b, 0x3d,
+ 0xe0, 0x48, 0x3a, 0x50, 0xb6, 0x43, 0x5c, 0xe5, 0x6b, 0xbc, 0x01, 0x98,
+ 0xd2, 0x64, 0x5f, 0x92, 0x64, 0x7b, 0x3f, 0x2d, 0x17, 0x79, 0x76, 0xd9,
+ 0x29, 0xfd, 0xf5, 0xce, 0x9c, 0xe8, 0xfb, 0xa1, 0xca, 0x1c, 0xc1, 0x75,
+ 0x9b, 0x62, 0x7d, 0x06, 0xd9, 0x9e, 0x22, 0x82, 0x24, 0x4c, 0xf2, 0x6f,
+ 0x2e, 0x4c, 0x5d, 0x97, 0x92, 0xaf, 0x6d, 0x2b, 0x3d, 0xda, 0xea, 0x88,
+ 0x1f, 0x45, 0x5f, 0x5d, 0xe6, 0x9a, 0xd2, 0xcd, 0xee, 0x28, 0xb8, 0x9c,
+ 0xbc, 0x80, 0x60, 0x50, 0x10, 0xe1, 0x1f, 0x19, 0xbd, 0xd1, 0xf6, 0x75,
+ 0x12, 0x16, 0xb7, 0x1c, 0x21, 0x4b, 0xb7, 0x78, 0x03, 0x2a, 0xd6, 0x62,
+ 0x12, 0x64, 0x7a, 0x62, 0x2f, 0x48, 0x0a, 0x5f
};
static const uint8_t e_1024[] = { /* key component e, 4 bytes */
@@ -44,44 +44,62 @@ static const uint8_t e_1024[] = { /* key component e, 4 bytes */
};
static const uint8_t d_1024[] = { /* key component d, 128 bytes */
- 0x53, 0x7a, 0x6a, 0xca, 0xf9, 0x00, 0xf8, 0xb1, 0xf5, 0x65, 0xc7, 0x53,
- 0x46, 0x9e, 0x58, 0x3c, 0x67, 0x76, 0x23, 0xb5, 0x49, 0xf1, 0xd9, 0xf1,
- 0xaa, 0x0c, 0x7f, 0xde, 0xc2, 0x2e, 0x8d, 0x89, 0xd6, 0x16, 0x6c, 0xf4,
- 0x2c, 0xd5, 0x75, 0xb3, 0xac, 0x38, 0x44, 0x77, 0x77, 0x32, 0x19, 0x03,
- 0x09, 0x13, 0xab, 0x00, 0x2c, 0xc6, 0x7a, 0x9c, 0x1c, 0xe8, 0xd9, 0x8b,
- 0x47, 0x4e, 0x5d, 0xe7, 0x34, 0xe7, 0xd4, 0x52, 0x08, 0x15, 0x51, 0xfa,
- 0xd7, 0xa0, 0x32, 0xda, 0x0f, 0xd0, 0x76, 0x81, 0x04, 0x96, 0xb1, 0xd0,
- 0x12, 0xa3, 0xd2, 0x0d, 0x75, 0xe5, 0xa1, 0x32, 0xfb, 0xaf, 0xaa, 0x9b,
- 0x2d, 0x77, 0x35, 0x28, 0x38, 0xb0, 0xae, 0xc1, 0x0c, 0x35, 0xfa, 0xf3,
- 0x6a, 0x12, 0xd6, 0x2d, 0xb3, 0x9e, 0xa7, 0x1a, 0xca, 0x32, 0x81, 0xd3,
- 0xe9, 0xf8, 0x94, 0x12, 0x6f, 0xf8, 0x68, 0xc1
+ 0x26, 0x2f, 0x56, 0x72, 0xf8, 0x04, 0x30, 0x36, 0xe4, 0x52, 0xa9, 0xac,
+ 0x0f, 0xbf, 0x29, 0xc5, 0x4e, 0xe4, 0x08, 0x06, 0xd6, 0xbe, 0x91, 0x35,
+ 0xdb, 0x10, 0x95, 0xa5, 0x2f, 0x2a, 0xca, 0x06, 0x59, 0x0a, 0x55, 0xbd,
+ 0x1d, 0x8d, 0xf3, 0x67, 0xeb, 0x30, 0x96, 0x16, 0x6a, 0xd1, 0xd8, 0x0e,
+ 0x77, 0x9e, 0x1e, 0x06, 0x87, 0x4c, 0x14, 0x5d, 0x14, 0xc6, 0x26, 0x0f,
+ 0x33, 0x9e, 0xf3, 0xca, 0x24, 0xf7, 0x29, 0xe3, 0x9c, 0xe7, 0x73, 0xb6,
+ 0x86, 0x40, 0x59, 0x83, 0x8a, 0xfb, 0xe5, 0xe6, 0x6f, 0xd4, 0x91, 0xba,
+ 0x84, 0x4f, 0xa4, 0x81, 0xe8, 0x9c, 0x82, 0x38, 0x22, 0xb3, 0x61, 0xad,
+ 0x51, 0xb6, 0x7d, 0xd8, 0x14, 0xc9, 0x1f, 0xff, 0x73, 0x20, 0xce, 0xb5,
+ 0x88, 0x84, 0x5b, 0xfe, 0x50, 0xd1, 0xff, 0x23, 0x99, 0x52, 0x8f, 0x32,
+ 0x5c, 0x0a, 0xb3, 0x78, 0x9a, 0x02, 0x3e, 0x01
};
static const uint8_t p_1024[] = { /* key component p, 64 bytes */
- 0xd6, 0x82, 0x31, 0xcd, 0x9e, 0xde, 0xc0, 0xef, 0x83, 0xd5, 0x6b, 0xc7,
- 0x80, 0x9b, 0x63, 0x02, 0xb3, 0xa6, 0x47, 0x87, 0x5c, 0x66, 0xa9, 0xae,
- 0x35, 0x44, 0x60, 0xf4, 0x68, 0xe4, 0x49, 0x44, 0x36, 0x82, 0x64, 0xa4,
- 0xe4, 0xae, 0x04, 0xf0, 0x5c, 0x0c, 0x53, 0x7b, 0x32, 0x56, 0x6a, 0x79,
- 0x17, 0xba, 0xca, 0x80, 0x03, 0x9e, 0x39, 0xc3, 0xe3, 0x8e, 0xd6, 0x95,
- 0xdf, 0xf5, 0xc4, 0xcb
+ 0xb7, 0x13, 0x35, 0xad, 0x26, 0x39, 0x64, 0x57, 0x5f, 0xee, 0xa3, 0xb2,
+ 0xc6, 0xdf, 0xeb, 0x90, 0xb1, 0xeb, 0x09, 0x87, 0xb2, 0xba, 0xe9, 0xb5,
+ 0x78, 0x8f, 0xf6, 0x02, 0x9f, 0xc1, 0xd9, 0x31, 0xeb, 0xde, 0xc4, 0xcf,
+ 0x2b, 0xcf, 0x0c, 0xbf, 0x31, 0xc0, 0xbd, 0xb4, 0x3b, 0xec, 0x41, 0x15,
+ 0xe8, 0x63, 0xf3, 0xae, 0x8e, 0xfd, 0xff, 0x27, 0x38, 0xf3, 0xf8, 0xee,
+ 0x29, 0x8e, 0x3e, 0x81
};
static const uint8_t q_1024[] = { /* key component q, 64 bytes */
- 0xf7, 0x77, 0x1c, 0x44, 0x7d, 0x4e, 0xe1, 0x95, 0xda, 0x01, 0xef, 0x60,
- 0xb4, 0x16, 0x5a, 0x10, 0xd7, 0xf3, 0x01, 0x78, 0xeb, 0x63, 0xea, 0x6c,
- 0xc4, 0xa8, 0x5c, 0xa0, 0xec, 0x20, 0x9d, 0xcf, 0x5a, 0xbf, 0x01, 0x4a,
- 0xa7, 0x50, 0x53, 0xf3, 0x3f, 0x66, 0x3a, 0x5f, 0x40, 0x31, 0xf7, 0xcd,
- 0x73, 0x50, 0xae, 0x2a, 0x99, 0xc3, 0x1a, 0xe3, 0x98, 0x58, 0xcf, 0x15,
- 0x0a, 0x55, 0x46, 0xaf
+ 0xc3, 0xde, 0x05, 0x3c, 0xc0, 0x3f, 0x0c, 0x79, 0x62, 0xea, 0x61, 0xc5,
+ 0xc8, 0x01, 0xd1, 0x11, 0x22, 0xeb, 0xa4, 0xd5, 0x59, 0xcb, 0xdf, 0xa4,
+ 0x0e, 0xce, 0x7f, 0x4d, 0xa0, 0xf1, 0x74, 0xd4, 0x32, 0xc9, 0x72, 0xb7,
+ 0x1b, 0x37, 0x6e, 0x22, 0xe7, 0xff, 0x6d, 0x73, 0x36, 0xb7, 0x29, 0xd7,
+ 0x9c, 0xf1, 0xf7, 0xb1, 0x25, 0x38, 0x7f, 0x3c, 0xc0, 0x6f, 0x47, 0xc6,
+ 0x6b, 0xc3, 0x98, 0xdf
+};
+
+static const uint8_t dP_1024[] = { /* key component dP, 64 bytes */
+ 0x27, 0x16, 0x0a, 0xd7, 0xb4, 0xd9, 0x7b, 0xfa, 0xcb, 0x98, 0x7f, 0x8a,
+ 0xa3, 0xbb, 0x1a, 0xe8, 0x01, 0x94, 0x54, 0xac, 0x8c, 0x14, 0x2b, 0xe1,
+ 0x7a, 0xa4, 0x01, 0xb9, 0xfd, 0xb1, 0xbd, 0x55, 0x53, 0x2e, 0x74, 0x86,
+ 0x66, 0xac, 0x05, 0xe4, 0xac, 0x12, 0xa2, 0x6d, 0xe0, 0x7d, 0x48, 0x48,
+ 0x0d, 0x1d, 0x89, 0xe1, 0x32, 0xd6, 0x37, 0xab, 0x80, 0x15, 0x56, 0x88,
+ 0x42, 0x87, 0x04, 0x01
+};
+
+static const uint8_t dQ_1024[] = { /* key component dQ, 64 bytes */
+ 0x11, 0xd4, 0x8e, 0x49, 0x7f, 0x7e, 0xbd, 0xd5, 0xf7, 0x09, 0x3b, 0x29,
+ 0x54, 0x11, 0xc6, 0x44, 0x77, 0x17, 0x58, 0x84, 0x0b, 0x8e, 0xa1, 0xa7,
+ 0x3f, 0xa9, 0xd0, 0xb0, 0xf2, 0x6b, 0xc8, 0xa4, 0xe0, 0x92, 0xb2, 0x1c,
+ 0xb5, 0x1f, 0x90, 0xa9, 0x20, 0xd1, 0x81, 0xd7, 0x31, 0x2d, 0xef, 0x63,
+ 0x2f, 0x68, 0x5f, 0x92, 0x02, 0xbf, 0x67, 0xe5, 0xd1, 0xe6, 0xcf, 0x73,
+ 0xe2, 0xaf, 0x85, 0xa5
};
static const uint8_t u_1024[] = { /* key component u, 64 bytes */
- 0x0e, 0x5f, 0xfa, 0x8f, 0xc2, 0x63, 0x09, 0xa1, 0x88, 0xd8, 0xd7, 0x75,
- 0x34, 0xa9, 0x21, 0xee, 0xab, 0xd9, 0xe2, 0x59, 0x17, 0xe4, 0x47, 0xd8,
- 0xa0, 0x7e, 0x71, 0x6e, 0x8a, 0x47, 0x4e, 0x49, 0xe8, 0x16, 0x3a, 0x0e,
- 0xdb, 0x24, 0xbb, 0x35, 0x6a, 0x69, 0xef, 0xa2, 0x50, 0x84, 0x1e, 0x8f,
- 0xbb, 0xec, 0xdb, 0xec, 0x94, 0x94, 0x58, 0xc0, 0xe4, 0x2a, 0xa8, 0x24,
- 0x8b, 0x15, 0xdb, 0xb9
+ 0x7f, 0x65, 0xc7, 0x09, 0xe5, 0x00, 0x47, 0xb8, 0x13, 0xf4, 0xfd, 0xf9,
+ 0x57, 0x76, 0x68, 0x46, 0xe6, 0x50, 0xb7, 0x31, 0x33, 0x22, 0x88, 0x4e,
+ 0xd1, 0x96, 0xcf, 0xf7, 0x2f, 0x6b, 0x7a, 0x4b, 0x8c, 0x55, 0x0e, 0x74,
+ 0x3c, 0xd5, 0x16, 0x1f, 0xec, 0x26, 0xab, 0xe7, 0x75, 0x8d, 0xee, 0xa4,
+ 0x95, 0x49, 0x99, 0xe1, 0x0c, 0x6b, 0x27, 0x04, 0x9a, 0x60, 0x86, 0xad,
+ 0xa7, 0x61, 0x41, 0xf5
};
static const uint8_t m_1024[] = { /* message to be signed, 128 bytes */
@@ -99,73 +117,73 @@ static const uint8_t m_1024[] = { /* message to be signed, 128 bytes */
};
static const uint8_t s_1024[] = { /* signed message, 128 bytes */
- 0xbf, 0x03, 0xe7, 0x1a, 0x8f, 0x16, 0xe5, 0xad, 0xe8, 0x1b, 0xcc, 0xcf,
- 0x9f, 0x3a, 0x4f, 0xc6, 0xd4, 0x14, 0xca, 0xae, 0x37, 0x9b, 0xc4, 0x4b,
- 0x40, 0x13, 0xbf, 0x94, 0x9a, 0xea, 0xc1, 0x6c, 0x6c, 0x1a, 0xad, 0xeb,
- 0xa2, 0x8e, 0xd7, 0xd6, 0xe8, 0x19, 0xfb, 0xf5, 0xd3, 0xe4, 0xdd, 0xd0,
- 0xa5, 0xd4, 0x41, 0x44, 0xb6, 0xda, 0xff, 0x9b, 0x42, 0x19, 0xf7, 0x30,
- 0x0e, 0x2e, 0x0e, 0x31, 0x6a, 0xf0, 0xc2, 0xfc, 0xa0, 0x8f, 0x23, 0x17,
- 0xc2, 0x69, 0xf2, 0xe7, 0x11, 0x33, 0x8f, 0x37, 0x14, 0x5f, 0xdf, 0xb0,
- 0x54, 0xdc, 0x36, 0x77, 0xc3, 0xc9, 0x64, 0x2a, 0x87, 0xd0, 0xa7, 0x78,
- 0xd5, 0x5b, 0xdf, 0xd2, 0x68, 0x96, 0xaa, 0xb2, 0x6b, 0xfb, 0x99, 0x20,
- 0x82, 0xa6, 0xfb, 0xcd, 0x03, 0x1a, 0xf3, 0x60, 0xc1, 0x5b, 0x5e, 0x92,
- 0x57, 0xc6, 0x08, 0x92, 0x74, 0x40, 0x62, 0x6c
+ 0x3b, 0x09, 0xcc, 0x3d, 0x2f, 0xa1, 0x68, 0x1c, 0xa9, 0x29, 0x1b, 0xb7,
+ 0xcf, 0xc9, 0xe7, 0xb4, 0xfd, 0x3e, 0x5a, 0x22, 0x1c, 0x29, 0xdf, 0x4a,
+ 0x32, 0xcf, 0xa5, 0xae, 0x30, 0xd4, 0xee, 0x8f, 0x3a, 0xc8, 0xc1, 0xee,
+ 0x79, 0x40, 0xb2, 0xbf, 0xc7, 0x12, 0x82, 0x73, 0x3c, 0x6b, 0x8a, 0xd1,
+ 0xa4, 0x4a, 0x6d, 0x60, 0x9f, 0x00, 0xb4, 0x51, 0x8b, 0x6c, 0xcd, 0xae,
+ 0xad, 0xf4, 0x0a, 0x48, 0xd5, 0xb9, 0x4b, 0x9e, 0xca, 0x77, 0x10, 0xc2,
+ 0x9b, 0x26, 0x8c, 0x65, 0x17, 0x96, 0xd0, 0xc7, 0x5e, 0x55, 0x20, 0x17,
+ 0x06, 0x74, 0x2d, 0x94, 0xe0, 0xfc, 0x09, 0xa2, 0xb1, 0x94, 0xe4, 0x83,
+ 0x0d, 0x8d, 0x9e, 0x26, 0x0a, 0x25, 0x93, 0xfb, 0xef, 0x4f, 0xb3, 0x0e,
+ 0x7a, 0x9b, 0x2f, 0x17, 0x94, 0xd8, 0xca, 0x64, 0x1e, 0xa6, 0x2e, 0xc9,
+ 0xf3, 0x54, 0x87, 0x34, 0xed, 0xf7, 0xa5, 0x00
};
/* 2048-bit RSA private key (PKCS #8)
-----BEGIN PRIVATE KEY-----
-MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCcvEpsSs0CKPeQ
-fsLHD1D/uPkzHNKNis4K79saXJw5MTqobxWd8gwfD4DtDsDAMneuXbqdUxldo6w7
-b4FQ7BTe0Prw0KKbplArP4hxS+ncG490ftZMVooeyY1aL5pdq5BnqyJiaCCmWlXU
-/swsJIhOgx2zYZszJZSMlggR6tKQunID/uwLnUBOWdJTQDFQUfMCy+u3qfCl3ate
-a5ODOpqOaqPIEC3OcD1cBVteKG1H629i8PyteLaJwx7BD2XV7jpV4+qNf6ywUx/f
-zTeEIwcUZg/X+iR6wLAbITGz7k7pcRx/k2yRR/9+yg3VFEGt4Tr4yGTUGSDK+ZR9
-/woz2nE7AgMBAAECggEAcuXJPQe8r8eubDuwt9Jvk3dbH3ASnfZSQ0w/91xKndaL
-5KvCUg39esuXvLBi9sJIYAeP5QLlBnMUsGF2kAbw6cKTIvQfMDFEdd/WOw/meRev
-GzxcBowuJpGkUKey5tX9PzICO9ePj8OLRmAe9oE1dzDBFh4Icv8qncDiW5gkEjmk
-ydd8N4Sa5PymquHAR8Mzo3CA9fb2aJELOEoB9w2S2RCa37Ak7NK51Nhuh/DleQqE
-j3ORoEbjzTq+GLG8eKFQkwClqQ450pt1+Har8maRDHuoF1gUq0vK+JvFsMHtxn4l
-jJA/PxWj209Ym77+CzPEF4n+v70qNR03D+UN55Vv4QKBgQC3iCUx2RE2AD1ebwkz
-DVRNKNeQvfIJXMPeRCwQ3N2f1sjV9x7xMxPNcx7SVuhoj4HrBzb3SwpgHbX9Qf/8
-4TqSHS8F2bTwanW42axYJ60IJBug0HfRbdcFYz2Hh4tM5KHWon9BWy+4XuWJKtBZ
-9Dkorpies3c5Y7M2cWrtOtLxkQKBgQDan4H8qRplVyU9yE01BUMf87DRrsBTb78V
-Zg5pYaofF4yN0u4Gk1Ea6ouvx+xWJti8oiXwoBBPNOG+dRdizgSAPVi7fikcNuqu
-9xkz2FjiL3p3taU/awM+FpGLcjK/5ldkB7VWYawikMsIO2l6XF7ViubJgHpKrEnC
-v2eHuiEQCwKBgDQGwhR5Zimas8rbSw5Pzv/4ffMoBT6mL1gIlz1IfwLajiApZ3oU
-cp6g7bHOtR8+3yNS7j/3478PbRGX7gsvhbz5zOSprGMiqrB19CchSCmwoqxZrD2Q
-F44NbdnHkLOBdGc1tUE/qi1nqUXS/zEgzDs+E0GZukhofNsIF7mcHUQhAoGBALD3
-0Ubus7k4s6KxUx4KJm3k20rAhFqF6E2wERZowkbszw+2oIqeEVcSaQRfdwW96E+5
-ibCgQNN84QdEzStjzOzpu7v5wdle8tWym6oGBN0CxcXFOgB95WAK8MHKLR59nFwS
-iU1lPuuz/UWqohU0VGfTSkHuSA/OKt8EBRAvMLhFAoGAdMNlyleBbjleJ2tc3C53
-51SquntS88Y/Owfx6uuyxhXaVkE2XdCl/BemooizyF0WdVtMhff2jlVMdsAbDqOd
-rVYdgfOHjEhpMa3Z1afzlAC06RLsl+gN2B76Mv/mnv0izdS4T/AcUfuUvPstyw++
-AeFZS9WhiXZXniFPQpskWic=
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCzvgb90hKxeDJy
+zeWz/F4JGZ3Acl1i3url3VPXHyoldyhuNC+8jf4iM7TGBYGLH+sYkBXWu9GD0erl
+KBMJMTBO8OdXulSAJh8r1Z8qNPSVNguvNgGQlRDGc7tZJ6gWFlzM2g5flED24bN9
+6Ir9O1cZi7xMc0Nzkn9Rms5IwPW8OB4IZZlbFC6Ih9vUSp06Tm3rQ/eQJkhLFbzM
+ejc9OH1LSpYtji44ohmy/jPJsmSlzwK5JSchZqbxl/msVw1t/nZS3loqKUMvzn9F
+iARLiaIrUKNCmSmL8HqEt2qKt0ESHG0vX07h5W5iHIJOuKhqcX3li8nFcwsOV3AB
+RsCRgeppAgMBAAECggEANEeTVQRjN4dUdRv6Me23lEIFJlKdYwKfpBhKKIoCAj+0
+XMmFEPzj7CLJ88bqNQMlqFFQaNLcT9Eg12Jelw/dkzhysYuaxGNSMbfCwc4BTd0Y
+bO/yaJFS/cXvujDUrQf4GgVapOZENwrS4E5hDuLRpLaGIF5uQhFcQuoaEgM99m6H
+TzOIhtu3DjdbfSsmkGVQ7xUVFcvaCrMVoq06dvUH4HpYTKeeqgcVv++XjIe83Nzv
++oN5U2oFOzrYpGGHN6jrekmmbEaxy8UHOySC6Y+UyRrPEy9q1ZgkkC9VCrM7E28/
+4PETw8MI7uNoosuFXofctKjtRvC5Sn9zW3dyv9NkAQKBgQDSkdDy4+xN2kA7gdry
+4eLKUzKRNSbnoPrCu2TENUR8oTjbJ52LQEbGa9HIKaM33701hJsc34C6adJgoY9c
+PoBcJgxOI7N40A/rI3c8krKS5X/ViBY3TzJsP3LaBKDdfioaTDVTjhYD6v2eu7Lt
+4eIqa8sVA4PhLSVGRW53ZSYjwQKBgQDahY6cR8WgPseQJTkCbKyfKCSuz6nioZpC
+stkpKhJepzE6AKZTLLWvNIPNT/khl40aby5seLNkY3Tb9cYBX2iShGv4cguPMiAl
+hb7Uljz19i6YaX74gkTjsYpv44ddLSZp+/FTOl0C0I8WocQpb8B2d4BgvfxgHrHb
+KCHnyihQqQKBgQC7PKPixt7hnzdMcrxhCpDiPbaSPgQZJSC1NXJ1sbPzalynKwPA
+xefpGgiRBs02qsGRLBfNRcQuflhuSlqyuHTk+4Qnm0FEJSZyfLfS6dLWIjJYikjO
+56I7dPPIfyMXsM75UVh9srNKypK4qciCFEBKXk1XoyeKe91QLf77NbsDQQKBgDnY
+CLwNs56Lf8AEWmbt5XPr6GntxoabSH5HYXyoClzL3RgBfAWgXCeYuxrqBISD3XIV
+5DAKc1IrkY94K4XJf6DpNLt7VNv+5MuJ783ORyzEkej+ZAHcWef74y1jCT386aI8
+ctEZLe3Ez1uqToa5cjTpxS3WnKvE9EeTBAabWLihAoGBAKft+PG+j+QhZeHSGxRz
+mY6AQHH4z7IU94fmXiT2kTsG8/svhPNfsmVt7UCSJbCaYsrcuR2NonVV8wn/U793
+LcnLAV+WObeduMTBCasJw8IniFwFhhfkxOtmlevExE1I3ENwkRlJ7NdROky4pnd5
+LGmN2EOOlFijEGxBfw+Wb1rQ
-----END PRIVATE KEY-----
*/
static const uint8_t n_2048[] = { /* key component n, 256 bytes */
- 0x9c, 0xbc, 0x4a, 0x6c, 0x4a, 0xcd, 0x02, 0x28, 0xf7, 0x90, 0x7e, 0xc2,
- 0xc7, 0x0f, 0x50, 0xff, 0xb8, 0xf9, 0x33, 0x1c, 0xd2, 0x8d, 0x8a, 0xce,
- 0x0a, 0xef, 0xdb, 0x1a, 0x5c, 0x9c, 0x39, 0x31, 0x3a, 0xa8, 0x6f, 0x15,
- 0x9d, 0xf2, 0x0c, 0x1f, 0x0f, 0x80, 0xed, 0x0e, 0xc0, 0xc0, 0x32, 0x77,
- 0xae, 0x5d, 0xba, 0x9d, 0x53, 0x19, 0x5d, 0xa3, 0xac, 0x3b, 0x6f, 0x81,
- 0x50, 0xec, 0x14, 0xde, 0xd0, 0xfa, 0xf0, 0xd0, 0xa2, 0x9b, 0xa6, 0x50,
- 0x2b, 0x3f, 0x88, 0x71, 0x4b, 0xe9, 0xdc, 0x1b, 0x8f, 0x74, 0x7e, 0xd6,
- 0x4c, 0x56, 0x8a, 0x1e, 0xc9, 0x8d, 0x5a, 0x2f, 0x9a, 0x5d, 0xab, 0x90,
- 0x67, 0xab, 0x22, 0x62, 0x68, 0x20, 0xa6, 0x5a, 0x55, 0xd4, 0xfe, 0xcc,
- 0x2c, 0x24, 0x88, 0x4e, 0x83, 0x1d, 0xb3, 0x61, 0x9b, 0x33, 0x25, 0x94,
- 0x8c, 0x96, 0x08, 0x11, 0xea, 0xd2, 0x90, 0xba, 0x72, 0x03, 0xfe, 0xec,
- 0x0b, 0x9d, 0x40, 0x4e, 0x59, 0xd2, 0x53, 0x40, 0x31, 0x50, 0x51, 0xf3,
- 0x02, 0xcb, 0xeb, 0xb7, 0xa9, 0xf0, 0xa5, 0xdd, 0xab, 0x5e, 0x6b, 0x93,
- 0x83, 0x3a, 0x9a, 0x8e, 0x6a, 0xa3, 0xc8, 0x10, 0x2d, 0xce, 0x70, 0x3d,
- 0x5c, 0x05, 0x5b, 0x5e, 0x28, 0x6d, 0x47, 0xeb, 0x6f, 0x62, 0xf0, 0xfc,
- 0xad, 0x78, 0xb6, 0x89, 0xc3, 0x1e, 0xc1, 0x0f, 0x65, 0xd5, 0xee, 0x3a,
- 0x55, 0xe3, 0xea, 0x8d, 0x7f, 0xac, 0xb0, 0x53, 0x1f, 0xdf, 0xcd, 0x37,
- 0x84, 0x23, 0x07, 0x14, 0x66, 0x0f, 0xd7, 0xfa, 0x24, 0x7a, 0xc0, 0xb0,
- 0x1b, 0x21, 0x31, 0xb3, 0xee, 0x4e, 0xe9, 0x71, 0x1c, 0x7f, 0x93, 0x6c,
- 0x91, 0x47, 0xff, 0x7e, 0xca, 0x0d, 0xd5, 0x14, 0x41, 0xad, 0xe1, 0x3a,
- 0xf8, 0xc8, 0x64, 0xd4, 0x19, 0x20, 0xca, 0xf9, 0x94, 0x7d, 0xff, 0x0a,
- 0x33, 0xda, 0x71, 0x3b
+ 0xb3, 0xbe, 0x06, 0xfd, 0xd2, 0x12, 0xb1, 0x78, 0x32, 0x72, 0xcd, 0xe5,
+ 0xb3, 0xfc, 0x5e, 0x09, 0x19, 0x9d, 0xc0, 0x72, 0x5d, 0x62, 0xde, 0xea,
+ 0xe5, 0xdd, 0x53, 0xd7, 0x1f, 0x2a, 0x25, 0x77, 0x28, 0x6e, 0x34, 0x2f,
+ 0xbc, 0x8d, 0xfe, 0x22, 0x33, 0xb4, 0xc6, 0x05, 0x81, 0x8b, 0x1f, 0xeb,
+ 0x18, 0x90, 0x15, 0xd6, 0xbb, 0xd1, 0x83, 0xd1, 0xea, 0xe5, 0x28, 0x13,
+ 0x09, 0x31, 0x30, 0x4e, 0xf0, 0xe7, 0x57, 0xba, 0x54, 0x80, 0x26, 0x1f,
+ 0x2b, 0xd5, 0x9f, 0x2a, 0x34, 0xf4, 0x95, 0x36, 0x0b, 0xaf, 0x36, 0x01,
+ 0x90, 0x95, 0x10, 0xc6, 0x73, 0xbb, 0x59, 0x27, 0xa8, 0x16, 0x16, 0x5c,
+ 0xcc, 0xda, 0x0e, 0x5f, 0x94, 0x40, 0xf6, 0xe1, 0xb3, 0x7d, 0xe8, 0x8a,
+ 0xfd, 0x3b, 0x57, 0x19, 0x8b, 0xbc, 0x4c, 0x73, 0x43, 0x73, 0x92, 0x7f,
+ 0x51, 0x9a, 0xce, 0x48, 0xc0, 0xf5, 0xbc, 0x38, 0x1e, 0x08, 0x65, 0x99,
+ 0x5b, 0x14, 0x2e, 0x88, 0x87, 0xdb, 0xd4, 0x4a, 0x9d, 0x3a, 0x4e, 0x6d,
+ 0xeb, 0x43, 0xf7, 0x90, 0x26, 0x48, 0x4b, 0x15, 0xbc, 0xcc, 0x7a, 0x37,
+ 0x3d, 0x38, 0x7d, 0x4b, 0x4a, 0x96, 0x2d, 0x8e, 0x2e, 0x38, 0xa2, 0x19,
+ 0xb2, 0xfe, 0x33, 0xc9, 0xb2, 0x64, 0xa5, 0xcf, 0x02, 0xb9, 0x25, 0x27,
+ 0x21, 0x66, 0xa6, 0xf1, 0x97, 0xf9, 0xac, 0x57, 0x0d, 0x6d, 0xfe, 0x76,
+ 0x52, 0xde, 0x5a, 0x2a, 0x29, 0x43, 0x2f, 0xce, 0x7f, 0x45, 0x88, 0x04,
+ 0x4b, 0x89, 0xa2, 0x2b, 0x50, 0xa3, 0x42, 0x99, 0x29, 0x8b, 0xf0, 0x7a,
+ 0x84, 0xb7, 0x6a, 0x8a, 0xb7, 0x41, 0x12, 0x1c, 0x6d, 0x2f, 0x5f, 0x4e,
+ 0xe1, 0xe5, 0x6e, 0x62, 0x1c, 0x82, 0x4e, 0xb8, 0xa8, 0x6a, 0x71, 0x7d,
+ 0xe5, 0x8b, 0xc9, 0xc5, 0x73, 0x0b, 0x0e, 0x57, 0x70, 0x01, 0x46, 0xc0,
+ 0x91, 0x81, 0xea, 0x69
};
static const uint8_t e_2048[] = { /* key component e, 4 bytes */
@@ -173,70 +191,98 @@ static const uint8_t e_2048[] = { /* key component e, 4 bytes */
};
static const uint8_t d_2048[] = { /* key component d, 256 bytes */
- 0x72, 0xe5, 0xc9, 0x3d, 0x07, 0xbc, 0xaf, 0xc7, 0xae, 0x6c, 0x3b, 0xb0,
- 0xb7, 0xd2, 0x6f, 0x93, 0x77, 0x5b, 0x1f, 0x70, 0x12, 0x9d, 0xf6, 0x52,
- 0x43, 0x4c, 0x3f, 0xf7, 0x5c, 0x4a, 0x9d, 0xd6, 0x8b, 0xe4, 0xab, 0xc2,
- 0x52, 0x0d, 0xfd, 0x7a, 0xcb, 0x97, 0xbc, 0xb0, 0x62, 0xf6, 0xc2, 0x48,
- 0x60, 0x07, 0x8f, 0xe5, 0x02, 0xe5, 0x06, 0x73, 0x14, 0xb0, 0x61, 0x76,
- 0x90, 0x06, 0xf0, 0xe9, 0xc2, 0x93, 0x22, 0xf4, 0x1f, 0x30, 0x31, 0x44,
- 0x75, 0xdf, 0xd6, 0x3b, 0x0f, 0xe6, 0x79, 0x17, 0xaf, 0x1b, 0x3c, 0x5c,
- 0x06, 0x8c, 0x2e, 0x26, 0x91, 0xa4, 0x50, 0xa7, 0xb2, 0xe6, 0xd5, 0xfd,
- 0x3f, 0x32, 0x02, 0x3b, 0xd7, 0x8f, 0x8f, 0xc3, 0x8b, 0x46, 0x60, 0x1e,
- 0xf6, 0x81, 0x35, 0x77, 0x30, 0xc1, 0x16, 0x1e, 0x08, 0x72, 0xff, 0x2a,
- 0x9d, 0xc0, 0xe2, 0x5b, 0x98, 0x24, 0x12, 0x39, 0xa4, 0xc9, 0xd7, 0x7c,
- 0x37, 0x84, 0x9a, 0xe4, 0xfc, 0xa6, 0xaa, 0xe1, 0xc0, 0x47, 0xc3, 0x33,
- 0xa3, 0x70, 0x80, 0xf5, 0xf6, 0xf6, 0x68, 0x91, 0x0b, 0x38, 0x4a, 0x01,
- 0xf7, 0x0d, 0x92, 0xd9, 0x10, 0x9a, 0xdf, 0xb0, 0x24, 0xec, 0xd2, 0xb9,
- 0xd4, 0xd8, 0x6e, 0x87, 0xf0, 0xe5, 0x79, 0x0a, 0x84, 0x8f, 0x73, 0x91,
- 0xa0, 0x46, 0xe3, 0xcd, 0x3a, 0xbe, 0x18, 0xb1, 0xbc, 0x78, 0xa1, 0x50,
- 0x93, 0x00, 0xa5, 0xa9, 0x0e, 0x39, 0xd2, 0x9b, 0x75, 0xf8, 0x76, 0xab,
- 0xf2, 0x66, 0x91, 0x0c, 0x7b, 0xa8, 0x17, 0x58, 0x14, 0xab, 0x4b, 0xca,
- 0xf8, 0x9b, 0xc5, 0xb0, 0xc1, 0xed, 0xc6, 0x7e, 0x25, 0x8c, 0x90, 0x3f,
- 0x3f, 0x15, 0xa3, 0xdb, 0x4f, 0x58, 0x9b, 0xbe, 0xfe, 0x0b, 0x33, 0xc4,
- 0x17, 0x89, 0xfe, 0xbf, 0xbd, 0x2a, 0x35, 0x1d, 0x37, 0x0f, 0xe5, 0x0d,
- 0xe7, 0x95, 0x6f, 0xe1
+ 0x34, 0x47, 0x93, 0x55, 0x04, 0x63, 0x37, 0x87, 0x54, 0x75, 0x1b, 0xfa,
+ 0x31, 0xed, 0xb7, 0x94, 0x42, 0x05, 0x26, 0x52, 0x9d, 0x63, 0x02, 0x9f,
+ 0xa4, 0x18, 0x4a, 0x28, 0x8a, 0x02, 0x02, 0x3f, 0xb4, 0x5c, 0xc9, 0x85,
+ 0x10, 0xfc, 0xe3, 0xec, 0x22, 0xc9, 0xf3, 0xc6, 0xea, 0x35, 0x03, 0x25,
+ 0xa8, 0x51, 0x50, 0x68, 0xd2, 0xdc, 0x4f, 0xd1, 0x20, 0xd7, 0x62, 0x5e,
+ 0x97, 0x0f, 0xdd, 0x93, 0x38, 0x72, 0xb1, 0x8b, 0x9a, 0xc4, 0x63, 0x52,
+ 0x31, 0xb7, 0xc2, 0xc1, 0xce, 0x01, 0x4d, 0xdd, 0x18, 0x6c, 0xef, 0xf2,
+ 0x68, 0x91, 0x52, 0xfd, 0xc5, 0xef, 0xba, 0x30, 0xd4, 0xad, 0x07, 0xf8,
+ 0x1a, 0x05, 0x5a, 0xa4, 0xe6, 0x44, 0x37, 0x0a, 0xd2, 0xe0, 0x4e, 0x61,
+ 0x0e, 0xe2, 0xd1, 0xa4, 0xb6, 0x86, 0x20, 0x5e, 0x6e, 0x42, 0x11, 0x5c,
+ 0x42, 0xea, 0x1a, 0x12, 0x03, 0x3d, 0xf6, 0x6e, 0x87, 0x4f, 0x33, 0x88,
+ 0x86, 0xdb, 0xb7, 0x0e, 0x37, 0x5b, 0x7d, 0x2b, 0x26, 0x90, 0x65, 0x50,
+ 0xef, 0x15, 0x15, 0x15, 0xcb, 0xda, 0x0a, 0xb3, 0x15, 0xa2, 0xad, 0x3a,
+ 0x76, 0xf5, 0x07, 0xe0, 0x7a, 0x58, 0x4c, 0xa7, 0x9e, 0xaa, 0x07, 0x15,
+ 0xbf, 0xef, 0x97, 0x8c, 0x87, 0xbc, 0xdc, 0xdc, 0xef, 0xfa, 0x83, 0x79,
+ 0x53, 0x6a, 0x05, 0x3b, 0x3a, 0xd8, 0xa4, 0x61, 0x87, 0x37, 0xa8, 0xeb,
+ 0x7a, 0x49, 0xa6, 0x6c, 0x46, 0xb1, 0xcb, 0xc5, 0x07, 0x3b, 0x24, 0x82,
+ 0xe9, 0x8f, 0x94, 0xc9, 0x1a, 0xcf, 0x13, 0x2f, 0x6a, 0xd5, 0x98, 0x24,
+ 0x90, 0x2f, 0x55, 0x0a, 0xb3, 0x3b, 0x13, 0x6f, 0x3f, 0xe0, 0xf1, 0x13,
+ 0xc3, 0xc3, 0x08, 0xee, 0xe3, 0x68, 0xa2, 0xcb, 0x85, 0x5e, 0x87, 0xdc,
+ 0xb4, 0xa8, 0xed, 0x46, 0xf0, 0xb9, 0x4a, 0x7f, 0x73, 0x5b, 0x77, 0x72,
+ 0xbf, 0xd3, 0x64, 0x01
};
static const uint8_t p_2048[] = { /* key component p, 128 bytes */
- 0xb7, 0x88, 0x25, 0x31, 0xd9, 0x11, 0x36, 0x00, 0x3d, 0x5e, 0x6f, 0x09,
- 0x33, 0x0d, 0x54, 0x4d, 0x28, 0xd7, 0x90, 0xbd, 0xf2, 0x09, 0x5c, 0xc3,
- 0xde, 0x44, 0x2c, 0x10, 0xdc, 0xdd, 0x9f, 0xd6, 0xc8, 0xd5, 0xf7, 0x1e,
- 0xf1, 0x33, 0x13, 0xcd, 0x73, 0x1e, 0xd2, 0x56, 0xe8, 0x68, 0x8f, 0x81,
- 0xeb, 0x07, 0x36, 0xf7, 0x4b, 0x0a, 0x60, 0x1d, 0xb5, 0xfd, 0x41, 0xff,
- 0xfc, 0xe1, 0x3a, 0x92, 0x1d, 0x2f, 0x05, 0xd9, 0xb4, 0xf0, 0x6a, 0x75,
- 0xb8, 0xd9, 0xac, 0x58, 0x27, 0xad, 0x08, 0x24, 0x1b, 0xa0, 0xd0, 0x77,
- 0xd1, 0x6d, 0xd7, 0x05, 0x63, 0x3d, 0x87, 0x87, 0x8b, 0x4c, 0xe4, 0xa1,
- 0xd6, 0xa2, 0x7f, 0x41, 0x5b, 0x2f, 0xb8, 0x5e, 0xe5, 0x89, 0x2a, 0xd0,
- 0x59, 0xf4, 0x39, 0x28, 0xae, 0x98, 0x9e, 0xb3, 0x77, 0x39, 0x63, 0xb3,
- 0x36, 0x71, 0x6a, 0xed, 0x3a, 0xd2, 0xf1, 0x91
+ 0xd2, 0x91, 0xd0, 0xf2, 0xe3, 0xec, 0x4d, 0xda, 0x40, 0x3b, 0x81, 0xda,
+ 0xf2, 0xe1, 0xe2, 0xca, 0x53, 0x32, 0x91, 0x35, 0x26, 0xe7, 0xa0, 0xfa,
+ 0xc2, 0xbb, 0x64, 0xc4, 0x35, 0x44, 0x7c, 0xa1, 0x38, 0xdb, 0x27, 0x9d,
+ 0x8b, 0x40, 0x46, 0xc6, 0x6b, 0xd1, 0xc8, 0x29, 0xa3, 0x37, 0xdf, 0xbd,
+ 0x35, 0x84, 0x9b, 0x1c, 0xdf, 0x80, 0xba, 0x69, 0xd2, 0x60, 0xa1, 0x8f,
+ 0x5c, 0x3e, 0x80, 0x5c, 0x26, 0x0c, 0x4e, 0x23, 0xb3, 0x78, 0xd0, 0x0f,
+ 0xeb, 0x23, 0x77, 0x3c, 0x92, 0xb2, 0x92, 0xe5, 0x7f, 0xd5, 0x88, 0x16,
+ 0x37, 0x4f, 0x32, 0x6c, 0x3f, 0x72, 0xda, 0x04, 0xa0, 0xdd, 0x7e, 0x2a,
+ 0x1a, 0x4c, 0x35, 0x53, 0x8e, 0x16, 0x03, 0xea, 0xfd, 0x9e, 0xbb, 0xb2,
+ 0xed, 0xe1, 0xe2, 0x2a, 0x6b, 0xcb, 0x15, 0x03, 0x83, 0xe1, 0x2d, 0x25,
+ 0x46, 0x45, 0x6e, 0x77, 0x65, 0x26, 0x23, 0xc1
};
static const uint8_t q_2048[] = { /* key component q, 128 bytes */
- 0xda, 0x9f, 0x81, 0xfc, 0xa9, 0x1a, 0x65, 0x57, 0x25, 0x3d, 0xc8, 0x4d,
- 0x35, 0x05, 0x43, 0x1f, 0xf3, 0xb0, 0xd1, 0xae, 0xc0, 0x53, 0x6f, 0xbf,
- 0x15, 0x66, 0x0e, 0x69, 0x61, 0xaa, 0x1f, 0x17, 0x8c, 0x8d, 0xd2, 0xee,
- 0x06, 0x93, 0x51, 0x1a, 0xea, 0x8b, 0xaf, 0xc7, 0xec, 0x56, 0x26, 0xd8,
- 0xbc, 0xa2, 0x25, 0xf0, 0xa0, 0x10, 0x4f, 0x34, 0xe1, 0xbe, 0x75, 0x17,
- 0x62, 0xce, 0x04, 0x80, 0x3d, 0x58, 0xbb, 0x7e, 0x29, 0x1c, 0x36, 0xea,
- 0xae, 0xf7, 0x19, 0x33, 0xd8, 0x58, 0xe2, 0x2f, 0x7a, 0x77, 0xb5, 0xa5,
- 0x3f, 0x6b, 0x03, 0x3e, 0x16, 0x91, 0x8b, 0x72, 0x32, 0xbf, 0xe6, 0x57,
- 0x64, 0x07, 0xb5, 0x56, 0x61, 0xac, 0x22, 0x90, 0xcb, 0x08, 0x3b, 0x69,
- 0x7a, 0x5c, 0x5e, 0xd5, 0x8a, 0xe6, 0xc9, 0x80, 0x7a, 0x4a, 0xac, 0x49,
- 0xc2, 0xbf, 0x67, 0x87, 0xba, 0x21, 0x10, 0x0b
+ 0xda, 0x85, 0x8e, 0x9c, 0x47, 0xc5, 0xa0, 0x3e, 0xc7, 0x90, 0x25, 0x39,
+ 0x02, 0x6c, 0xac, 0x9f, 0x28, 0x24, 0xae, 0xcf, 0xa9, 0xe2, 0xa1, 0x9a,
+ 0x42, 0xb2, 0xd9, 0x29, 0x2a, 0x12, 0x5e, 0xa7, 0x31, 0x3a, 0x00, 0xa6,
+ 0x53, 0x2c, 0xb5, 0xaf, 0x34, 0x83, 0xcd, 0x4f, 0xf9, 0x21, 0x97, 0x8d,
+ 0x1a, 0x6f, 0x2e, 0x6c, 0x78, 0xb3, 0x64, 0x63, 0x74, 0xdb, 0xf5, 0xc6,
+ 0x01, 0x5f, 0x68, 0x92, 0x84, 0x6b, 0xf8, 0x72, 0x0b, 0x8f, 0x32, 0x20,
+ 0x25, 0x85, 0xbe, 0xd4, 0x96, 0x3c, 0xf5, 0xf6, 0x2e, 0x98, 0x69, 0x7e,
+ 0xf8, 0x82, 0x44, 0xe3, 0xb1, 0x8a, 0x6f, 0xe3, 0x87, 0x5d, 0x2d, 0x26,
+ 0x69, 0xfb, 0xf1, 0x53, 0x3a, 0x5d, 0x02, 0xd0, 0x8f, 0x16, 0xa1, 0xc4,
+ 0x29, 0x6f, 0xc0, 0x76, 0x77, 0x80, 0x60, 0xbd, 0xfc, 0x60, 0x1e, 0xb1,
+ 0xdb, 0x28, 0x21, 0xe7, 0xca, 0x28, 0x50, 0xa9
+};
+
+static const uint8_t dP_2048[] = { /* key component dP, 128 bytes */
+ 0xbb, 0x3c, 0xa3, 0xe2, 0xc6, 0xde, 0xe1, 0x9f, 0x37, 0x4c, 0x72, 0xbc,
+ 0x61, 0x0a, 0x90, 0xe2, 0x3d, 0xb6, 0x92, 0x3e, 0x04, 0x19, 0x25, 0x20,
+ 0xb5, 0x35, 0x72, 0x75, 0xb1, 0xb3, 0xf3, 0x6a, 0x5c, 0xa7, 0x2b, 0x03,
+ 0xc0, 0xc5, 0xe7, 0xe9, 0x1a, 0x08, 0x91, 0x06, 0xcd, 0x36, 0xaa, 0xc1,
+ 0x91, 0x2c, 0x17, 0xcd, 0x45, 0xc4, 0x2e, 0x7e, 0x58, 0x6e, 0x4a, 0x5a,
+ 0xb2, 0xb8, 0x74, 0xe4, 0xfb, 0x84, 0x27, 0x9b, 0x41, 0x44, 0x25, 0x26,
+ 0x72, 0x7c, 0xb7, 0xd2, 0xe9, 0xd2, 0xd6, 0x22, 0x32, 0x58, 0x8a, 0x48,
+ 0xce, 0xe7, 0xa2, 0x3b, 0x74, 0xf3, 0xc8, 0x7f, 0x23, 0x17, 0xb0, 0xce,
+ 0xf9, 0x51, 0x58, 0x7d, 0xb2, 0xb3, 0x4a, 0xca, 0x92, 0xb8, 0xa9, 0xc8,
+ 0x82, 0x14, 0x40, 0x4a, 0x5e, 0x4d, 0x57, 0xa3, 0x27, 0x8a, 0x7b, 0xdd,
+ 0x50, 0x2d, 0xfe, 0xfb, 0x35, 0xbb, 0x03, 0x41
+};
+
+static const uint8_t dQ_2048[] = { /* key component dQ, 128 bytes */
+ 0x39, 0xd8, 0x08, 0xbc, 0x0d, 0xb3, 0x9e, 0x8b, 0x7f, 0xc0, 0x04, 0x5a,
+ 0x66, 0xed, 0xe5, 0x73, 0xeb, 0xe8, 0x69, 0xed, 0xc6, 0x86, 0x9b, 0x48,
+ 0x7e, 0x47, 0x61, 0x7c, 0xa8, 0x0a, 0x5c, 0xcb, 0xdd, 0x18, 0x01, 0x7c,
+ 0x05, 0xa0, 0x5c, 0x27, 0x98, 0xbb, 0x1a, 0xea, 0x04, 0x84, 0x83, 0xdd,
+ 0x72, 0x15, 0xe4, 0x30, 0x0a, 0x73, 0x52, 0x2b, 0x91, 0x8f, 0x78, 0x2b,
+ 0x85, 0xc9, 0x7f, 0xa0, 0xe9, 0x34, 0xbb, 0x7b, 0x54, 0xdb, 0xfe, 0xe4,
+ 0xcb, 0x89, 0xef, 0xcd, 0xce, 0x47, 0x2c, 0xc4, 0x91, 0xe8, 0xfe, 0x64,
+ 0x01, 0xdc, 0x59, 0xe7, 0xfb, 0xe3, 0x2d, 0x63, 0x09, 0x3d, 0xfc, 0xe9,
+ 0xa2, 0x3c, 0x72, 0xd1, 0x19, 0x2d, 0xed, 0xc4, 0xcf, 0x5b, 0xaa, 0x4e,
+ 0x86, 0xb9, 0x72, 0x34, 0xe9, 0xc5, 0x2d, 0xd6, 0x9c, 0xab, 0xc4, 0xf4,
+ 0x47, 0x93, 0x04, 0x06, 0x9b, 0x58, 0xb8, 0xa1
};
static const uint8_t u_2048[] = { /* key component u, 128 bytes */
- 0x4f, 0x88, 0xe0, 0xf9, 0x63, 0x9b, 0x12, 0x96, 0xf3, 0x37, 0x79, 0xed,
- 0x77, 0x1f, 0xe1, 0xcd, 0x54, 0x57, 0x20, 0xf4, 0xae, 0xc2, 0x88, 0x35,
- 0x78, 0x97, 0x96, 0xb8, 0xb4, 0xb4, 0xc5, 0xb8, 0x18, 0x38, 0x65, 0x78,
- 0x1e, 0x68, 0xbf, 0xce, 0xf8, 0x28, 0x61, 0x4f, 0xfe, 0x46, 0x84, 0x4e,
- 0xbb, 0x8d, 0x32, 0x4e, 0x1f, 0xf8, 0x34, 0x90, 0x3d, 0x99, 0x81, 0xce,
- 0x7b, 0x60, 0x83, 0x00, 0x42, 0x54, 0x89, 0x3b, 0x3c, 0x7a, 0x72, 0x69,
- 0x10, 0xd2, 0xc9, 0x87, 0x28, 0xb9, 0xce, 0x2e, 0x3f, 0xd0, 0x98, 0xda,
- 0x0a, 0x6b, 0xf9, 0xef, 0x66, 0xc9, 0x51, 0x46, 0x8a, 0xdc, 0xdf, 0x56,
- 0x68, 0xfb, 0x39, 0x3f, 0xa5, 0x36, 0x44, 0x11, 0x57, 0x7b, 0x4e, 0xc3,
- 0x3a, 0x64, 0x30, 0xb8, 0xde, 0xf5, 0x14, 0x7e, 0xab, 0xca, 0xa6, 0x27,
- 0x52, 0x7f, 0x63, 0x8b, 0xa2, 0xb7, 0x51, 0x1f
+ 0xa7, 0xed, 0xf8, 0xf1, 0xbe, 0x8f, 0xe4, 0x21, 0x65, 0xe1, 0xd2, 0x1b,
+ 0x14, 0x73, 0x99, 0x8e, 0x80, 0x40, 0x71, 0xf8, 0xcf, 0xb2, 0x14, 0xf7,
+ 0x87, 0xe6, 0x5e, 0x24, 0xf6, 0x91, 0x3b, 0x06, 0xf3, 0xfb, 0x2f, 0x84,
+ 0xf3, 0x5f, 0xb2, 0x65, 0x6d, 0xed, 0x40, 0x92, 0x25, 0xb0, 0x9a, 0x62,
+ 0xca, 0xdc, 0xb9, 0x1d, 0x8d, 0xa2, 0x75, 0x55, 0xf3, 0x09, 0xff, 0x53,
+ 0xbf, 0x77, 0x2d, 0xc9, 0xcb, 0x01, 0x5f, 0x96, 0x39, 0xb7, 0x9d, 0xb8,
+ 0xc4, 0xc1, 0x09, 0xab, 0x09, 0xc3, 0xc2, 0x27, 0x88, 0x5c, 0x05, 0x86,
+ 0x17, 0xe4, 0xc4, 0xeb, 0x66, 0x95, 0xeb, 0xc4, 0xc4, 0x4d, 0x48, 0xdc,
+ 0x43, 0x70, 0x91, 0x19, 0x49, 0xec, 0xd7, 0x51, 0x3a, 0x4c, 0xb8, 0xa6,
+ 0x77, 0x79, 0x2c, 0x69, 0x8d, 0xd8, 0x43, 0x8e, 0x94, 0x58, 0xa3, 0x10,
+ 0x6c, 0x41, 0x7f, 0x0f, 0x96, 0x6f, 0x5a, 0xd0
};
static const uint8_t m_2048[] = { /* message to be signed, 256 bytes */
@@ -265,129 +311,129 @@ static const uint8_t m_2048[] = { /* message to be signed, 256 bytes */
};
static const uint8_t s_2048[] = { /* signed message, 256 bytes */
- 0x38, 0xcd, 0x57, 0x72, 0x74, 0x5a, 0x7c, 0xa1, 0x1b, 0x1d, 0xf6, 0xda,
- 0x12, 0xbd, 0x9c, 0x9e, 0xd7, 0xfd, 0x84, 0x48, 0xfd, 0x7c, 0x6c, 0xc4,
- 0xd0, 0x96, 0x97, 0x67, 0xef, 0x3a, 0xb2, 0x70, 0x03, 0x97, 0xa8, 0x6b,
- 0x6e, 0x87, 0xd4, 0x85, 0x5c, 0x30, 0x0a, 0xa4, 0x48, 0x19, 0xb1, 0x5c,
- 0xbd, 0xf6, 0x53, 0xaa, 0xa9, 0x2a, 0x95, 0xa9, 0xe2, 0x0d, 0x25, 0x44,
- 0x16, 0x99, 0xb7, 0x9b, 0x6d, 0x14, 0x17, 0x47, 0xf7, 0xf8, 0x66, 0x4f,
- 0x4f, 0xd7, 0x15, 0x89, 0xc8, 0x76, 0xb0, 0x32, 0x5d, 0x8e, 0x28, 0x3c,
- 0x76, 0x1e, 0x64, 0xbb, 0x66, 0xb8, 0x0b, 0x28, 0x06, 0x83, 0xb1, 0x77,
- 0xbf, 0x3d, 0x9e, 0xae, 0xdf, 0xa1, 0xc0, 0x87, 0xef, 0x7c, 0x2f, 0xae,
- 0x3b, 0x14, 0x8d, 0x6d, 0xa1, 0x0b, 0x52, 0xed, 0xd2, 0x40, 0xfa, 0x8c,
- 0x3b, 0x04, 0x00, 0x47, 0xdf, 0x7d, 0x74, 0xba, 0x47, 0x4b, 0x1b, 0x1d,
- 0x55, 0xbd, 0x37, 0x8b, 0x05, 0x2e, 0x58, 0x21, 0x97, 0x96, 0xf3, 0xfc,
- 0xf0, 0x09, 0xbb, 0xe5, 0xc8, 0x32, 0x6e, 0xdc, 0x9c, 0x3b, 0xfa, 0xdc,
- 0x8e, 0x75, 0xc5, 0x19, 0xe7, 0xf8, 0x2f, 0xa6, 0x74, 0x63, 0x1e, 0xf7,
- 0xe5, 0x72, 0x89, 0xe8, 0x3f, 0x3f, 0x19, 0xac, 0x64, 0xf8, 0xc6, 0xa3,
- 0x91, 0xe2, 0x68, 0x44, 0xbe, 0x93, 0x65, 0xa8, 0x92, 0xcb, 0xa1, 0x01,
- 0x8f, 0xad, 0xb9, 0xf8, 0xfc, 0xfd, 0x94, 0xe5, 0xa4, 0x72, 0x4c, 0x52,
- 0x80, 0x5e, 0x00, 0xa0, 0x76, 0x0b, 0x6d, 0xe1, 0x58, 0xb1, 0x39, 0x53,
- 0x1b, 0x1d, 0xa0, 0xe4, 0x1a, 0x15, 0x8e, 0xf8, 0x11, 0xbc, 0xaa, 0xbc,
- 0xdd, 0xc7, 0xe1, 0x86, 0xf8, 0x91, 0x89, 0x58, 0x83, 0x3d, 0xba, 0x56,
- 0xa3, 0x07, 0x21, 0x37, 0xf8, 0xa1, 0x1b, 0x21, 0x41, 0x70, 0x4e, 0xa5,
- 0xa4, 0x52, 0x6d, 0x66
+ 0x4a, 0xf7, 0x47, 0xbb, 0xf2, 0x11, 0xd4, 0x4a, 0x03, 0xe5, 0xce, 0xbb,
+ 0x07, 0xae, 0xc9, 0x74, 0xf9, 0xc5, 0x05, 0xa2, 0xbc, 0xe8, 0x8f, 0x38,
+ 0x8c, 0xde, 0x7e, 0xdf, 0x29, 0xab, 0xd6, 0x0c, 0x9a, 0x3f, 0xdf, 0x4d,
+ 0xd1, 0xe4, 0x19, 0x51, 0x46, 0x94, 0xb6, 0x3b, 0xc3, 0xf1, 0x45, 0xba,
+ 0x30, 0x34, 0x18, 0x03, 0xf6, 0x86, 0xaf, 0x45, 0xe3, 0x1d, 0x33, 0x4e,
+ 0x08, 0x09, 0x95, 0xf5, 0x52, 0xad, 0xbe, 0x56, 0xb9, 0xb4, 0x5a, 0xed,
+ 0xd5, 0xd1, 0xff, 0x52, 0x59, 0x75, 0x7b, 0x95, 0xfa, 0x8f, 0x29, 0x87,
+ 0x48, 0x50, 0x37, 0xf6, 0x62, 0x7d, 0x4b, 0x4c, 0xdc, 0xe4, 0xee, 0xc2,
+ 0xaa, 0x93, 0x2f, 0x94, 0x97, 0x8a, 0xfe, 0xa8, 0x12, 0x31, 0x09, 0x4f,
+ 0x8a, 0xe7, 0x49, 0x69, 0xc8, 0xa0, 0xf0, 0xb6, 0xb8, 0x64, 0x53, 0x5b,
+ 0xce, 0xe2, 0xc7, 0xac, 0xa1, 0x20, 0x24, 0x90, 0xd3, 0xcd, 0xee, 0x08,
+ 0xfb, 0xa0, 0xa0, 0xf7, 0x5f, 0xaa, 0x3b, 0x4f, 0xa2, 0x3b, 0xb6, 0xe9,
+ 0x20, 0x79, 0xca, 0x8f, 0xb3, 0x68, 0x07, 0x4b, 0x79, 0x42, 0x60, 0xf3,
+ 0x18, 0xd1, 0x6f, 0xff, 0xdd, 0xe2, 0x96, 0x44, 0xea, 0x5c, 0x36, 0x43,
+ 0x07, 0xdc, 0xaa, 0xae, 0xba, 0x6b, 0xe9, 0x10, 0x0e, 0xf2, 0x12, 0xf3,
+ 0xb4, 0x6c, 0xeb, 0x8a, 0x1e, 0xf7, 0xfd, 0x23, 0x2c, 0x56, 0x30, 0xf4,
+ 0x29, 0xf3, 0x75, 0x7b, 0xd8, 0xfb, 0x80, 0xb9, 0x26, 0x01, 0x69, 0xa5,
+ 0x92, 0x7c, 0x56, 0x56, 0x2d, 0x0d, 0x91, 0x54, 0x81, 0x76, 0x21, 0xe5,
+ 0x70, 0x1f, 0x1e, 0x8f, 0xc3, 0xc8, 0x9f, 0x2a, 0xa5, 0xfa, 0x96, 0xf2,
+ 0x62, 0x99, 0xb8, 0x6e, 0xf0, 0x5f, 0x83, 0x15, 0x8f, 0x33, 0xe4, 0xe7,
+ 0xaf, 0xe2, 0xac, 0x23, 0x2e, 0x38, 0x5f, 0x45, 0x41, 0x9b, 0xe9, 0xb4,
+ 0x79, 0xd0, 0xf8, 0xcf
};
/* 4096-bit RSA private key (PKCS #8)
-----BEGIN PRIVATE KEY-----
-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
-sZApBBoMaUXbbssGZtjCRlNX9IUKZYKd
+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
+470vqgm1JXKXNFHU9dkUZd/51e1fzso=
-----END PRIVATE KEY-----
*/
static const uint8_t n_4096[] = { /* key component n, 512 bytes */
- 0xc6, 0x1a, 0x6b, 0x4f, 0x5e, 0x62, 0x47, 0xfb, 0x06, 0x0c, 0xb4, 0x93,
- 0x4c, 0x73, 0xc6, 0x1b, 0x5a, 0xc7, 0x95, 0x84, 0xd8, 0x0e, 0xbb, 0x53,
- 0x44, 0x7c, 0x27, 0x30, 0xc1, 0x2f, 0xf5, 0x7b, 0xfc, 0x67, 0xa2, 0xa4,
- 0x62, 0x3e, 0x08, 0xb8, 0x12, 0xa3, 0x17, 0x13, 0x10, 0x43, 0xd7, 0x3d,
- 0x6a, 0x1a, 0x61, 0xe3, 0x3a, 0x7a, 0x2e, 0x5c, 0xd7, 0x47, 0x7f, 0xbd,
- 0x32, 0xf4, 0x82, 0x21, 0x39, 0xe2, 0xd7, 0x0f, 0x6a, 0x63, 0x84, 0x81,
- 0x4d, 0x62, 0xd2, 0xfb, 0xf9, 0x6a, 0xde, 0x51, 0xa7, 0xe0, 0x02, 0x0d,
- 0x47, 0x13, 0x61, 0x73, 0xee, 0x8e, 0x0d, 0x0e, 0x70, 0x02, 0xc7, 0xe9,
- 0xe9, 0xf0, 0x6a, 0x01, 0xe9, 0xe7, 0x6d, 0xba, 0x07, 0xea, 0x2f, 0x9f,
- 0xc7, 0x9e, 0xbb, 0xb3, 0xbb, 0x5a, 0x69, 0x0f, 0x69, 0x36, 0x86, 0xc6,
- 0xd5, 0xbd, 0xb5, 0x69, 0xa6, 0x72, 0xc6, 0x22, 0x71, 0xb5, 0x92, 0xe5,
- 0xd6, 0x28, 0xe7, 0xf3, 0x37, 0x8c, 0x05, 0x63, 0x5c, 0x82, 0x27, 0xa4,
- 0x8b, 0x31, 0x0e, 0xdb, 0x1f, 0x07, 0x2b, 0xf0, 0x94, 0x50, 0x6b, 0x0b,
- 0x70, 0x44, 0x8c, 0x94, 0xd4, 0x89, 0xd1, 0x38, 0xd1, 0x4e, 0xad, 0x2d,
- 0x70, 0xbb, 0xe1, 0x50, 0xd4, 0x22, 0x2d, 0x55, 0xaf, 0x6a, 0x67, 0xc6,
- 0x0b, 0x08, 0xc3, 0x1a, 0xa5, 0x6c, 0x5e, 0x7d, 0xd7, 0x32, 0x9a, 0xd4,
- 0x8f, 0x42, 0xe7, 0x53, 0x5f, 0x25, 0x5c, 0xb5, 0xf0, 0x4f, 0x70, 0xc5,
- 0xd3, 0x62, 0x90, 0xfe, 0x65, 0x6e, 0x37, 0xa0, 0x3f, 0xc9, 0x0c, 0x3a,
- 0x1f, 0x3b, 0xab, 0x10, 0x13, 0x7a, 0x49, 0xca, 0xe0, 0x92, 0x0d, 0x6d,
- 0x9e, 0xc0, 0x5b, 0x04, 0xa7, 0xb6, 0x99, 0x9c, 0x91, 0x90, 0xfc, 0x93,
- 0x70, 0x3e, 0xa5, 0x8b, 0x1e, 0x08, 0x7c, 0x3a, 0x16, 0xb2, 0xb8, 0xfc,
- 0x66, 0xff, 0xc2, 0x5b, 0x8f, 0x83, 0xf2, 0xe8, 0x12, 0x99, 0x7f, 0xde,
- 0x1f, 0x98, 0x09, 0x6b, 0xac, 0x91, 0xb1, 0xe7, 0x9b, 0x4e, 0x9d, 0x62,
- 0xfa, 0xa5, 0xa0, 0x83, 0x6d, 0x37, 0xc1, 0x28, 0xa8, 0x0a, 0x8f, 0x6f,
- 0x05, 0x09, 0x87, 0xe3, 0x44, 0x44, 0xb9, 0xba, 0x67, 0x75, 0x44, 0x53,
- 0xb0, 0x19, 0x22, 0x55, 0xcc, 0x90, 0xfd, 0x3e, 0xdf, 0x46, 0x8f, 0x1f,
- 0x19, 0x28, 0x0e, 0xe2, 0xc9, 0x1e, 0x1a, 0x29, 0xda, 0x66, 0x7c, 0x56,
- 0xee, 0x0d, 0xd2, 0x32, 0x67, 0x63, 0x6e, 0x9f, 0xa2, 0x45, 0x9c, 0x91,
- 0x51, 0xd9, 0x70, 0x7b, 0x93, 0x54, 0x07, 0x39, 0xc9, 0xfb, 0x3b, 0x45,
- 0xd4, 0xb5, 0x88, 0xd0, 0x6a, 0x1c, 0x1a, 0x29, 0xb9, 0xfc, 0xf4, 0xb1,
- 0x64, 0x69, 0xfe, 0xf3, 0x1f, 0xea, 0xd0, 0xdb, 0x7a, 0xb3, 0xc8, 0xdc,
- 0x04, 0xc9, 0xae, 0xb0, 0xd8, 0xb3, 0x4f, 0x4e, 0x14, 0x70, 0xeb, 0xd5,
- 0x2b, 0x92, 0xdc, 0x7a, 0x77, 0x5d, 0x3e, 0x0e, 0x9f, 0x3a, 0xe1, 0x0b,
- 0x6e, 0xce, 0x5e, 0x8f, 0x89, 0x18, 0x23, 0x63, 0x38, 0x8f, 0x9b, 0x09,
- 0x57, 0x8e, 0x78, 0x8c, 0x94, 0xab, 0x20, 0x2e, 0xa0, 0x34, 0x95, 0x58,
- 0xa6, 0x3b, 0x7b, 0x21, 0x0f, 0x97, 0x5d, 0xb6, 0x8a, 0xe4, 0x04, 0x93,
- 0x73, 0x8f, 0xb1, 0x27, 0x81, 0x8e, 0x5d, 0x2c, 0x3f, 0x67, 0x38, 0x53,
- 0x1d, 0xc4, 0x55, 0x4e, 0x54, 0x22, 0x80, 0xc4, 0x81, 0x2e, 0x2f, 0x3c,
- 0x68, 0xf5, 0xf2, 0x4e, 0xbf, 0xb4, 0x90, 0x07, 0x15, 0x25, 0x29, 0x87,
- 0xd7, 0x94, 0x42, 0xe4, 0x57, 0x75, 0x1a, 0x4a, 0xd3, 0xbb, 0x9b, 0xa6,
- 0xc7, 0x4d, 0xb2, 0x56, 0xbf, 0xe8, 0x41, 0x83, 0x35, 0x24, 0xc2, 0x8d,
- 0x7d, 0x06, 0xe4, 0x9c, 0xd0, 0xca, 0x44, 0x65, 0x0c, 0x77, 0x93, 0xde,
- 0xf7, 0x7b, 0xe4, 0xcf, 0x6f, 0x35, 0xac, 0x91
+ 0xae, 0x5b, 0xe8, 0x48, 0xde, 0xf7, 0xd6, 0x06, 0x59, 0xbf, 0x0a, 0x2c,
+ 0x06, 0x95, 0x02, 0xcb, 0x1b, 0xfe, 0x96, 0x08, 0x00, 0x79, 0x78, 0xd5,
+ 0x9f, 0x81, 0x6a, 0x63, 0xc4, 0x14, 0xca, 0x70, 0x61, 0xbe, 0x9c, 0xa9,
+ 0xe2, 0x01, 0x8a, 0xcb, 0xb6, 0xc9, 0x06, 0xe1, 0xfb, 0xb4, 0xcc, 0x99,
+ 0x79, 0xcd, 0xfd, 0x47, 0xbc, 0x68, 0x49, 0x5d, 0x6e, 0xb9, 0xea, 0x27,
+ 0x77, 0x95, 0xc1, 0x38, 0x74, 0x29, 0xad, 0x20, 0x37, 0x22, 0x79, 0xb2,
+ 0xde, 0xc6, 0xf9, 0x15, 0x70, 0x71, 0xa3, 0xfb, 0x77, 0x6c, 0x87, 0x48,
+ 0xbf, 0x45, 0x9d, 0xa1, 0x7c, 0xd2, 0x50, 0x25, 0xaf, 0x41, 0xa7, 0x36,
+ 0x77, 0x0e, 0xdb, 0x2e, 0x0c, 0xae, 0x1f, 0xe5, 0x39, 0x23, 0xd4, 0x1e,
+ 0x43, 0x49, 0xc0, 0xc4, 0x55, 0xf2, 0x27, 0x48, 0x70, 0xc0, 0x53, 0x6a,
+ 0xc3, 0xc6, 0xe0, 0xd7, 0x04, 0xc9, 0xd5, 0x5d, 0xdd, 0x3c, 0x08, 0x34,
+ 0xcb, 0x52, 0x23, 0x54, 0xfc, 0x11, 0x50, 0xcf, 0x45, 0xc4, 0x64, 0x96,
+ 0x74, 0x63, 0x80, 0x5e, 0x0a, 0x64, 0xe6, 0xd1, 0xc1, 0x84, 0x57, 0x72,
+ 0xe1, 0x6a, 0x13, 0x60, 0x16, 0x1f, 0xb5, 0x2e, 0x98, 0xb8, 0x70, 0x1c,
+ 0x12, 0xb7, 0xe1, 0x28, 0x15, 0x85, 0xa2, 0xb0, 0xfa, 0xfd, 0x29, 0x78,
+ 0xc0, 0x6c, 0x75, 0x42, 0x01, 0x85, 0x07, 0x7e, 0xf5, 0xef, 0x13, 0x5c,
+ 0x17, 0xaa, 0x5d, 0x18, 0x7b, 0x13, 0x53, 0x44, 0x71, 0x1f, 0x11, 0x01,
+ 0xb6, 0xe0, 0x47, 0x84, 0x76, 0x3d, 0x97, 0x47, 0xbd, 0x8c, 0xb3, 0x7e,
+ 0xb1, 0xac, 0x78, 0x72, 0x90, 0x8b, 0x12, 0xc6, 0xe3, 0x23, 0xa1, 0xdb,
+ 0x09, 0x96, 0xa1, 0xbf, 0x24, 0xef, 0xd2, 0x01, 0xd7, 0x8b, 0x32, 0x3e,
+ 0x23, 0xeb, 0xc4, 0x83, 0xdb, 0xc1, 0x75, 0x7c, 0x89, 0xd6, 0xd9, 0x2c,
+ 0xe2, 0xd6, 0xd7, 0x97, 0x18, 0x36, 0x01, 0x68, 0xcc, 0x93, 0xd0, 0x6c,
+ 0x39, 0x91, 0x0e, 0x13, 0x16, 0x5a, 0xbc, 0x5c, 0x40, 0xf9, 0x84, 0x1e,
+ 0x48, 0xf2, 0x93, 0x82, 0xb7, 0x0b, 0xa8, 0x42, 0x5c, 0x3b, 0xbd, 0x58,
+ 0xe9, 0xd6, 0xdf, 0x74, 0x58, 0xbf, 0xdb, 0x6c, 0x0e, 0xd8, 0x73, 0x0b,
+ 0xfd, 0x23, 0x85, 0x77, 0xac, 0xe0, 0xa4, 0x3a, 0x49, 0x02, 0x25, 0xef,
+ 0xe6, 0x54, 0x1f, 0x59, 0xd1, 0x79, 0x98, 0xec, 0x29, 0xc3, 0x61, 0x45,
+ 0xe6, 0xdb, 0x5d, 0x7e, 0xa0, 0x87, 0x09, 0xcb, 0x34, 0xe7, 0x93, 0x48,
+ 0x8b, 0x57, 0x57, 0x11, 0x89, 0x30, 0x0c, 0x10, 0x4c, 0x4a, 0x4b, 0xbc,
+ 0x06, 0x27, 0x56, 0x40, 0x87, 0x80, 0x8c, 0x4e, 0x99, 0x36, 0x14, 0x1c,
+ 0x74, 0xb4, 0x66, 0xfd, 0xe3, 0xc0, 0x67, 0xcb, 0xe8, 0x31, 0x8c, 0x62,
+ 0xec, 0x62, 0x03, 0x58, 0x51, 0xba, 0x7d, 0x1a, 0x43, 0x83, 0xf2, 0xd6,
+ 0x31, 0xa3, 0xbe, 0xe4, 0xe1, 0x68, 0xe3, 0xed, 0x88, 0x14, 0x4c, 0x0d,
+ 0x80, 0xe3, 0x5c, 0xf1, 0x03, 0x42, 0xc7, 0xfd, 0xaa, 0x5f, 0x1d, 0x1a,
+ 0x3c, 0x6d, 0x29, 0xc8, 0x90, 0xb6, 0x30, 0xd8, 0xdc, 0xb3, 0x67, 0xe3,
+ 0x8e, 0x19, 0xae, 0xed, 0x5b, 0x7a, 0x19, 0xdb, 0xbc, 0x8c, 0x95, 0x69,
+ 0xd0, 0x18, 0x41, 0x2b, 0x1f, 0xa1, 0x1c, 0x28, 0xdb, 0xc1, 0xd9, 0xde,
+ 0x20, 0x52, 0xc9, 0x56, 0x12, 0x33, 0xa7, 0xf5, 0x7c, 0xea, 0x16, 0x75,
+ 0xd1, 0x0f, 0x64, 0x54, 0x3d, 0xf0, 0xcf, 0x7a, 0xc3, 0x09, 0xe1, 0x79,
+ 0x65, 0x97, 0x6a, 0xfb, 0xc3, 0x88, 0x4c, 0x07, 0xdf, 0xd5, 0x36, 0x43,
+ 0xed, 0x79, 0xb1, 0x3e, 0xae, 0x1e, 0x4d, 0x07, 0xe7, 0x16, 0x92, 0xfc,
+ 0x2b, 0x65, 0x6a, 0xa5, 0xc1, 0x73, 0x02, 0x1b, 0xfe, 0xa8, 0xdd, 0xae,
+ 0x43, 0x75, 0xe9, 0xff, 0x6f, 0x9d, 0xfc, 0xed
};
static const uint8_t e_4096[] = { /* key component e, 4 bytes */
@@ -395,124 +441,174 @@ static const uint8_t e_4096[] = { /* key component e, 4 bytes */
};
static const uint8_t d_4096[] = { /* key component d, 512 bytes */
- 0x97, 0xb1, 0xd3, 0x4a, 0x4b, 0x73, 0xe6, 0xba, 0x89, 0xbf, 0x60, 0xe7,
- 0x0a, 0x3b, 0xfd, 0x0f, 0x25, 0x4c, 0x7f, 0x69, 0xe2, 0x28, 0x25, 0xb9,
- 0x75, 0x4f, 0xbc, 0x92, 0xd0, 0xdb, 0xf0, 0x96, 0xa8, 0x88, 0x93, 0x3a,
- 0x5d, 0x20, 0x33, 0x7d, 0x00, 0x88, 0x72, 0x3a, 0xde, 0xd1, 0x94, 0x18,
- 0x2b, 0x0f, 0x58, 0xb5, 0xaf, 0x29, 0xb0, 0x26, 0xd7, 0x92, 0xa0, 0x76,
- 0x38, 0x76, 0x92, 0xce, 0xee, 0x8c, 0x8d, 0x31, 0xf8, 0xbd, 0x8b, 0xd1,
- 0x97, 0x78, 0x7d, 0x27, 0x05, 0xae, 0x97, 0xde, 0xdf, 0x35, 0xe1, 0x5c,
- 0x59, 0x78, 0xb5, 0xbf, 0x18, 0x85, 0x1d, 0xea, 0x58, 0x4b, 0x48, 0xda,
- 0x0d, 0x91, 0x53, 0x1b, 0x74, 0x09, 0x0b, 0x34, 0xd0, 0xaa, 0xbb, 0x1d,
- 0x16, 0xb6, 0xad, 0xf4, 0xcb, 0x1a, 0x48, 0x28, 0xcc, 0xe0, 0x3c, 0x04,
- 0x35, 0xd7, 0xb6, 0xfa, 0xd7, 0xc2, 0x3b, 0x86, 0x54, 0x9c, 0x3d, 0x88,
- 0x51, 0x9d, 0xb1, 0x3f, 0xc4, 0xe1, 0x2b, 0x9f, 0x12, 0x4f, 0x78, 0x1b,
- 0xbf, 0x9a, 0x29, 0x4e, 0x11, 0x4c, 0x64, 0x91, 0x2c, 0x81, 0x07, 0xf7,
- 0x12, 0x58, 0xeb, 0x6d, 0x6b, 0xf2, 0xbc, 0x8b, 0x4d, 0x7b, 0x79, 0x90,
- 0xba, 0x2a, 0xa4, 0x36, 0x48, 0xba, 0x83, 0x0c, 0x81, 0xee, 0x70, 0xd8,
- 0x6d, 0xca, 0x9f, 0xdb, 0xdf, 0xa0, 0x44, 0x1b, 0x08, 0x96, 0x6f, 0x89,
- 0x24, 0xca, 0x8e, 0x68, 0x81, 0x0b, 0x13, 0x1b, 0x1e, 0x91, 0x36, 0x41,
- 0xc5, 0xc4, 0x4c, 0x53, 0x01, 0x48, 0x8c, 0xbf, 0xe1, 0x18, 0x0a, 0x8c,
- 0xd7, 0x2d, 0xd1, 0xa7, 0xd5, 0xc2, 0x66, 0x8f, 0x3b, 0xb7, 0x9b, 0x20,
- 0xbd, 0xd7, 0x7d, 0xda, 0xea, 0xb2, 0x20, 0x9e, 0x8b, 0xb9, 0x02, 0x2f,
- 0xc4, 0x5b, 0xb4, 0x57, 0xfa, 0xff, 0x74, 0x60, 0xe6, 0xd0, 0xa4, 0x66,
- 0x62, 0x58, 0xa6, 0x72, 0x2b, 0x41, 0x3a, 0xb8, 0xab, 0x03, 0xbf, 0x14,
- 0x83, 0xb6, 0x22, 0xbe, 0xea, 0xfa, 0x07, 0xf7, 0x5c, 0xbb, 0x34, 0x48,
- 0x31, 0xb4, 0xf3, 0x1b, 0xac, 0xd3, 0x61, 0xe7, 0xf9, 0x09, 0x6a, 0x8d,
- 0x9c, 0x3c, 0x3f, 0x64, 0xa4, 0xae, 0x9e, 0xe7, 0xae, 0x5c, 0x8a, 0x4b,
- 0x4b, 0x88, 0x9d, 0xa0, 0xd9, 0x75, 0x3a, 0x96, 0xa1, 0xf9, 0xef, 0xc6,
- 0x51, 0x77, 0x37, 0x9d, 0x30, 0x99, 0xd2, 0x95, 0xa4, 0x19, 0x1a, 0xd2,
- 0x95, 0x6e, 0xca, 0xf4, 0x44, 0x3b, 0xda, 0x41, 0xe1, 0x1e, 0xba, 0x8c,
- 0xf3, 0x73, 0x5f, 0x65, 0x1c, 0xa6, 0x64, 0x99, 0x45, 0xc0, 0x96, 0x23,
- 0xa4, 0x5c, 0xf5, 0x8a, 0xc7, 0x8c, 0xac, 0x64, 0xc5, 0x09, 0x9c, 0x73,
- 0x14, 0x50, 0x06, 0x5a, 0xb8, 0x2e, 0x93, 0x77, 0x3d, 0x2f, 0x40, 0x18,
- 0x9c, 0xa5, 0x3f, 0x53, 0x6c, 0x2c, 0xdb, 0x78, 0x1f, 0x09, 0x2e, 0x13,
- 0xac, 0xc4, 0x86, 0xa0, 0x2c, 0xdc, 0xcd, 0xf2, 0x8c, 0xae, 0xe0, 0xcb,
- 0x61, 0x99, 0x3d, 0x92, 0x29, 0x1b, 0x0f, 0xa1, 0x86, 0xd9, 0x03, 0xaa,
- 0xe4, 0x7e, 0x82, 0xa0, 0xaf, 0x39, 0x86, 0x8d, 0x6e, 0x14, 0xe2, 0x6f,
- 0xa2, 0x9c, 0x0b, 0x13, 0x50, 0x77, 0x8e, 0xed, 0x96, 0x83, 0xab, 0xea,
- 0x9a, 0x5e, 0xc4, 0x79, 0x9a, 0x52, 0xb4, 0xf0, 0x9c, 0x63, 0xb5, 0x17,
- 0x36, 0x42, 0x0b, 0xb2, 0xa0, 0xc9, 0xed, 0xb2, 0x69, 0x97, 0x94, 0xcd,
- 0xcb, 0xb1, 0xbb, 0x89, 0x61, 0x4e, 0x23, 0x51, 0xec, 0x6c, 0x26, 0x30,
- 0x19, 0x62, 0xa8, 0xd7, 0xca, 0x43, 0xf1, 0xdf, 0x03, 0xb7, 0xb3, 0x7d,
- 0x9e, 0x0d, 0xbc, 0x8a, 0xc4, 0x58, 0x4d, 0x8d, 0x23, 0x82, 0xcc, 0x6b,
- 0xcf, 0xfc, 0x3b, 0xf1, 0x73, 0xd0, 0x59, 0x72, 0x62, 0xdf, 0x70, 0x00,
- 0x3d, 0x3b, 0xe8, 0x43, 0x4f, 0xf8, 0xb0, 0x01
+ 0x09, 0x4f, 0xc7, 0x3b, 0xfd, 0x0c, 0x67, 0x55, 0xb7, 0x7d, 0x48, 0x61,
+ 0xc9, 0x88, 0x33, 0xb9, 0xfd, 0x28, 0xbf, 0x82, 0x75, 0xe4, 0x06, 0xdc,
+ 0x01, 0xc4, 0xbb, 0x95, 0xd0, 0x66, 0xfb, 0xd8, 0xbc, 0x9f, 0x9d, 0x66,
+ 0x45, 0x37, 0xa7, 0xdd, 0xf1, 0x49, 0x13, 0x21, 0x06, 0x7c, 0x45, 0x60,
+ 0xfc, 0xec, 0x4f, 0x56, 0x81, 0x6d, 0x60, 0x5d, 0xa9, 0x08, 0x2c, 0xc5,
+ 0x26, 0xd1, 0xcc, 0x9b, 0xe3, 0x38, 0x46, 0x92, 0xad, 0xdf, 0x1d, 0x78,
+ 0xbc, 0x05, 0x0c, 0x50, 0x64, 0xcc, 0xec, 0xe1, 0x05, 0x23, 0xba, 0xa5,
+ 0xdb, 0xf1, 0x2f, 0xd5, 0xec, 0x00, 0x9f, 0x5f, 0x23, 0xd8, 0xf1, 0xc1,
+ 0x2a, 0xe2, 0x94, 0x3a, 0x05, 0x5b, 0x57, 0x40, 0xba, 0xa8, 0x7b, 0x2f,
+ 0x92, 0x90, 0x61, 0xc7, 0x1a, 0x7f, 0xf0, 0x31, 0x22, 0x34, 0x63, 0x40,
+ 0x14, 0x6c, 0x8e, 0x9d, 0x6d, 0x18, 0x0a, 0x59, 0x14, 0xf3, 0x9b, 0xcc,
+ 0x95, 0xff, 0x30, 0xfb, 0xdc, 0xea, 0x5f, 0xd2, 0x71, 0xfb, 0x67, 0x13,
+ 0xd1, 0xeb, 0x6e, 0x73, 0x97, 0x42, 0x84, 0x41, 0x37, 0x80, 0x85, 0xdb,
+ 0x10, 0xc6, 0xc5, 0x7a, 0x20, 0x34, 0x59, 0x4c, 0xbf, 0xc3, 0x39, 0xd9,
+ 0x85, 0xf6, 0x64, 0x03, 0xec, 0x02, 0x53, 0x09, 0xf8, 0x9d, 0x84, 0x95,
+ 0x7a, 0x51, 0x50, 0x81, 0xd1, 0xea, 0xf4, 0xd7, 0x86, 0xf2, 0xd9, 0xa9,
+ 0xd5, 0x69, 0xb7, 0xc7, 0x12, 0xeb, 0x99, 0x4a, 0xd2, 0x6f, 0xc2, 0x4c,
+ 0xc1, 0x23, 0x81, 0x2e, 0x45, 0xd2, 0x4c, 0x3d, 0xfc, 0x95, 0x83, 0x10,
+ 0x85, 0x14, 0x9c, 0xea, 0x21, 0x66, 0x0b, 0xfe, 0xab, 0x2a, 0xbf, 0xfe,
+ 0x1e, 0xa8, 0xf8, 0xc2, 0x68, 0x8a, 0x96, 0x40, 0x9a, 0xee, 0x48, 0x24,
+ 0xa1, 0x6e, 0x79, 0xf4, 0x40, 0xcc, 0x38, 0x26, 0x0a, 0x86, 0x7a, 0xda,
+ 0xb6, 0xd2, 0x9a, 0x78, 0xd4, 0x9b, 0x73, 0x76, 0x0d, 0xc7, 0x87, 0x68,
+ 0x00, 0x30, 0xef, 0xc6, 0x5f, 0xf5, 0x17, 0x53, 0xd3, 0x0d, 0x3c, 0x7e,
+ 0x9f, 0xe1, 0x5d, 0x53, 0xb7, 0xf4, 0x73, 0x27, 0x30, 0x4e, 0x6c, 0x15,
+ 0x01, 0xa7, 0x94, 0x9b, 0x1b, 0x36, 0xfe, 0xf8, 0xa9, 0xf0, 0x48, 0x1f,
+ 0xaf, 0xbc, 0x7c, 0x35, 0x3b, 0xea, 0xb5, 0x96, 0x0a, 0xae, 0xbb, 0x13,
+ 0x48, 0x10, 0x90, 0x09, 0xee, 0x61, 0x77, 0x33, 0x15, 0x23, 0x8f, 0xc1,
+ 0x92, 0x67, 0xf0, 0x4e, 0x0d, 0x71, 0xee, 0xbb, 0x51, 0xec, 0x90, 0xab,
+ 0xa0, 0x90, 0x12, 0xe0, 0xb5, 0x5d, 0x3a, 0xd6, 0xdf, 0x86, 0x41, 0x50,
+ 0x7c, 0xb9, 0xa6, 0xe6, 0xbd, 0x52, 0xe1, 0x72, 0x98, 0x66, 0x12, 0x35,
+ 0x10, 0x4e, 0x50, 0x2d, 0xe4, 0xba, 0xb4, 0xd8, 0x66, 0x68, 0x69, 0x70,
+ 0x0b, 0x3d, 0x8f, 0xcb, 0x55, 0x61, 0x26, 0xfa, 0xda, 0xf3, 0x43, 0x65,
+ 0xbb, 0xe4, 0x61, 0x74, 0x72, 0x3e, 0x3a, 0x6f, 0x45, 0x38, 0x69, 0xb6,
+ 0xd0, 0xa8, 0x6b, 0xa0, 0xec, 0xdd, 0xf8, 0x8c, 0x7e, 0xc3, 0x7f, 0x01,
+ 0xba, 0x50, 0xaa, 0x24, 0x83, 0xc5, 0x1d, 0x8c, 0x5f, 0x4a, 0x24, 0x84,
+ 0x79, 0x6b, 0x6a, 0xbd, 0xae, 0x71, 0xb3, 0x4c, 0x26, 0x8c, 0x47, 0x7f,
+ 0x98, 0x94, 0xa3, 0x43, 0xe3, 0xf4, 0xb2, 0x11, 0xb6, 0x6c, 0x88, 0x2b,
+ 0xf8, 0x61, 0xd6, 0xe0, 0x08, 0x78, 0xe9, 0x2c, 0xf0, 0xce, 0xb7, 0xc0,
+ 0x09, 0xa2, 0xba, 0xe1, 0xde, 0x0e, 0x45, 0xc0, 0x32, 0x3b, 0x93, 0xde,
+ 0x3e, 0x7d, 0x69, 0x2d, 0x63, 0x45, 0x2b, 0x89, 0x2d, 0x99, 0xb1, 0x82,
+ 0x7a, 0xad, 0xb4, 0xd6, 0xde, 0x60, 0xfa, 0xab, 0xef, 0x87, 0xa9, 0x32,
+ 0xc1, 0x63, 0x7b, 0xb8, 0x32, 0xd0, 0x05, 0xe1, 0xe5, 0x04, 0xb7, 0x06,
+ 0x29, 0xf1, 0x1f, 0xbb, 0x38, 0x28, 0xe3, 0x51
};
static const uint8_t p_4096[] = { /* key component p, 256 bytes */
- 0xc9, 0x6c, 0x26, 0x11, 0xb3, 0x7e, 0x87, 0x65, 0x5c, 0x55, 0xa8, 0xbc,
- 0x88, 0x57, 0xf9, 0xb1, 0x5f, 0x6e, 0xe0, 0xd1, 0x5e, 0x73, 0x11, 0xd8,
- 0xfb, 0x70, 0xab, 0x21, 0xa2, 0x69, 0xe1, 0x1d, 0xd5, 0xda, 0x01, 0x58,
- 0x1d, 0x57, 0x28, 0x88, 0x00, 0xcf, 0x53, 0x7c, 0xa7, 0xf0, 0xed, 0x0f,
- 0xc2, 0x6d, 0x54, 0x3c, 0xa6, 0x5e, 0x8a, 0x7f, 0xca, 0x67, 0xdc, 0x4f,
- 0x63, 0xce, 0x4d, 0x12, 0x7b, 0x9e, 0xd2, 0xe2, 0x68, 0x6d, 0xea, 0xd6,
- 0x05, 0xe2, 0x02, 0x57, 0xf8, 0xa9, 0x7c, 0x90, 0x7d, 0x0a, 0x04, 0xff,
- 0x47, 0xf1, 0x5e, 0x24, 0x95, 0x08, 0x3a, 0x27, 0x30, 0xe6, 0x6b, 0xbb,
- 0x95, 0xe8, 0x08, 0x67, 0x9a, 0xab, 0x8a, 0xd4, 0x41, 0xc7, 0x68, 0xdd,
- 0xd6, 0x92, 0xbe, 0x63, 0x15, 0x72, 0x62, 0xf8, 0x2c, 0x44, 0x37, 0x0d,
- 0xa6, 0x19, 0xa8, 0x16, 0x9c, 0x9c, 0x29, 0xf7, 0x6b, 0xb9, 0xb3, 0x57,
- 0x03, 0x75, 0xf0, 0xf3, 0x67, 0xbf, 0xfb, 0x1f, 0xa2, 0x15, 0xfa, 0xf9,
- 0x40, 0xfc, 0x58, 0xe1, 0x94, 0xf4, 0x5c, 0xda, 0x15, 0x43, 0xb2, 0x82,
- 0xa2, 0x7f, 0x06, 0xea, 0x14, 0x74, 0x46, 0x5d, 0xbb, 0x6f, 0xe5, 0x66,
- 0x2d, 0x29, 0x47, 0xaa, 0x34, 0x3c, 0x01, 0x7a, 0x6f, 0xcd, 0x7f, 0x68,
- 0x92, 0xb4, 0x27, 0x76, 0xe6, 0x97, 0x5c, 0xdf, 0x59, 0x17, 0x31, 0x50,
- 0xce, 0x00, 0x73, 0x88, 0x33, 0x3a, 0x07, 0x16, 0x86, 0x75, 0xe0, 0x8a,
- 0x8e, 0xfe, 0x0a, 0xe7, 0xe1, 0x88, 0xe5, 0x18, 0x6c, 0x79, 0x86, 0xd8,
- 0x46, 0x48, 0x38, 0x04, 0x28, 0x29, 0x12, 0x87, 0x26, 0x69, 0xa7, 0xf6,
- 0x78, 0xb6, 0x6e, 0x05, 0x1a, 0x14, 0x26, 0x63, 0x08, 0x4b, 0xf2, 0x6d,
- 0xd8, 0x2f, 0x29, 0x45, 0x85, 0x56, 0x47, 0x6c, 0xee, 0x1c, 0x35, 0xe1,
- 0x3d, 0xf9, 0x6d, 0xf1
+ 0xc0, 0x3d, 0xe4, 0x29, 0xfa, 0x44, 0xac, 0x61, 0x54, 0x74, 0x4a, 0xe8,
+ 0x9a, 0x48, 0x29, 0xfe, 0x3b, 0xef, 0x72, 0xb4, 0xf5, 0x1e, 0xbd, 0x58,
+ 0xed, 0xfd, 0x67, 0x25, 0x9f, 0x1f, 0x57, 0x35, 0x37, 0x9a, 0xa2, 0x3d,
+ 0xab, 0x07, 0x09, 0x6a, 0xb9, 0xae, 0x74, 0xc7, 0x50, 0x4f, 0x55, 0x77,
+ 0xce, 0x21, 0x7a, 0xd0, 0x2f, 0x60, 0x15, 0xd3, 0x16, 0x3e, 0xed, 0xa2,
+ 0xe6, 0x85, 0x50, 0x50, 0x27, 0xe1, 0x5f, 0x03, 0x98, 0x4c, 0x16, 0x8d,
+ 0x2c, 0xea, 0x1f, 0x85, 0x11, 0xe2, 0x5d, 0x8c, 0x14, 0xb5, 0xc1, 0xdd,
+ 0xee, 0x1f, 0x8d, 0x0e, 0x50, 0xa6, 0xec, 0x21, 0xea, 0x67, 0x77, 0xbc,
+ 0xf1, 0x8d, 0xb5, 0xe0, 0x27, 0x39, 0x82, 0x86, 0x66, 0xa2, 0x55, 0x15,
+ 0x31, 0xc2, 0xa8, 0xb5, 0x9a, 0xa5, 0xa1, 0x30, 0x68, 0x2b, 0xbe, 0xde,
+ 0x36, 0xcf, 0x03, 0x19, 0x50, 0x09, 0x17, 0x5d, 0xbb, 0x32, 0x93, 0x52,
+ 0x77, 0x8f, 0xe9, 0xa5, 0xc2, 0xcc, 0x8b, 0x37, 0xcf, 0x3b, 0x7c, 0x78,
+ 0xd6, 0xf2, 0xd6, 0x4f, 0x36, 0xbd, 0x9f, 0xd2, 0xe5, 0x6c, 0xf1, 0xcb,
+ 0x66, 0xbd, 0x21, 0x08, 0x94, 0x39, 0x8c, 0xb1, 0xa2, 0x2d, 0xbb, 0x70,
+ 0xc1, 0x37, 0xf2, 0x73, 0xe9, 0xe3, 0x8b, 0xe9, 0x80, 0x4e, 0xd5, 0x81,
+ 0xa2, 0x8a, 0x74, 0x07, 0x66, 0x4d, 0x1a, 0x11, 0xb3, 0x9d, 0xd2, 0xe2,
+ 0x76, 0xef, 0x8c, 0x26, 0x43, 0x6e, 0x29, 0x02, 0x6a, 0xe1, 0x1f, 0x66,
+ 0xed, 0xbe, 0xe4, 0x34, 0xe7, 0xf7, 0x7e, 0x69, 0x2b, 0x2c, 0x25, 0x00,
+ 0x73, 0xa1, 0x2a, 0x99, 0xdc, 0x8f, 0x35, 0x9d, 0x29, 0x59, 0x02, 0x30,
+ 0xa2, 0x82, 0x2e, 0xac, 0xca, 0x3f, 0x19, 0xf4, 0xef, 0x74, 0x77, 0x6c,
+ 0xdd, 0x2d, 0x0c, 0x78, 0x23, 0xac, 0x38, 0xe9, 0x1a, 0xda, 0xb7, 0xf6,
+ 0x37, 0x99, 0x68, 0xab
};
static const uint8_t q_4096[] = { /* key component q, 256 bytes */
- 0xfb, 0xc8, 0x06, 0xfb, 0x50, 0xe1, 0x8a, 0x5d, 0x91, 0xb3, 0xe0, 0xad,
- 0xc3, 0xfd, 0xb6, 0xd1, 0x34, 0xa3, 0x35, 0xe1, 0x09, 0x4b, 0xf5, 0x0d,
- 0xf0, 0x6a, 0x54, 0xf0, 0x65, 0xf8, 0xf9, 0x9d, 0xbf, 0xed, 0xb8, 0xbc,
- 0x2f, 0x47, 0x01, 0x06, 0x42, 0x39, 0x6c, 0x93, 0x80, 0xb0, 0x77, 0x56,
- 0x53, 0xcf, 0x92, 0x42, 0x06, 0x8b, 0x4a, 0x09, 0xdb, 0x11, 0x47, 0xfa,
- 0x7a, 0xf2, 0x2a, 0xcb, 0x1a, 0x78, 0x7f, 0x13, 0x64, 0xaf, 0x1f, 0xb4,
- 0x20, 0x4a, 0x75, 0xb7, 0xf4, 0x35, 0x05, 0x4b, 0x7b, 0x8e, 0xb8, 0xc6,
- 0xdf, 0xca, 0xf6, 0xc9, 0x54, 0x52, 0x8f, 0xa5, 0x95, 0xce, 0xe6, 0x5b,
- 0x52, 0x83, 0x38, 0x65, 0xd8, 0x12, 0x84, 0x9c, 0x72, 0xa5, 0xb7, 0x0b,
- 0x21, 0xdf, 0xd3, 0xeb, 0x84, 0x47, 0x54, 0x4d, 0x3b, 0xbd, 0xae, 0xd9,
- 0x89, 0xd9, 0xa5, 0x11, 0xb4, 0xcb, 0x58, 0x4e, 0xa7, 0xd9, 0xe0, 0xc2,
- 0x39, 0xd8, 0xb7, 0xbe, 0xe4, 0x38, 0x83, 0x6f, 0x7b, 0x13, 0xb9, 0xc2,
- 0x91, 0x2c, 0x1c, 0x78, 0x4d, 0x28, 0x83, 0x80, 0x24, 0xa8, 0x31, 0x16,
- 0x4d, 0x4a, 0x10, 0x7f, 0xbc, 0xc0, 0x82, 0x8a, 0x6b, 0x68, 0xb6, 0xe9,
- 0x63, 0xbd, 0xdf, 0x56, 0x37, 0xa2, 0x68, 0xa4, 0x2f, 0x56, 0x22, 0xc4,
- 0x49, 0x05, 0x25, 0x3e, 0xbf, 0x2e, 0x87, 0x49, 0x98, 0x3a, 0x5f, 0x96,
- 0xf2, 0x2c, 0x96, 0x9e, 0xbd, 0xcd, 0xa3, 0xfa, 0x75, 0xe8, 0x62, 0x1a,
- 0xe2, 0xee, 0x91, 0xb0, 0xe4, 0xdb, 0x77, 0xea, 0x61, 0x6b, 0x1e, 0x58,
- 0x72, 0x7c, 0xd9, 0x9b, 0xf9, 0x9b, 0x7a, 0x1e, 0x84, 0xcb, 0xe8, 0x9f,
- 0xb1, 0x29, 0x7d, 0xc3, 0xa3, 0xe6, 0x89, 0x12, 0xed, 0x52, 0xb2, 0x9d,
- 0x13, 0xc6, 0xa9, 0xfc, 0x00, 0x53, 0x70, 0x70, 0xfd, 0x5a, 0xc2, 0x13,
- 0x00, 0x68, 0x08, 0xa1
+ 0xe8, 0x2f, 0xb2, 0xa3, 0xaa, 0xfd, 0x22, 0x52, 0x4f, 0xd5, 0x15, 0xb8,
+ 0xb1, 0xa6, 0xf5, 0x30, 0x7f, 0x41, 0xb0, 0x94, 0x99, 0xc0, 0xbb, 0x2a,
+ 0xdc, 0xa5, 0x49, 0x54, 0xa8, 0xce, 0x41, 0x06, 0x4f, 0xe3, 0x6c, 0xb4,
+ 0xca, 0x3d, 0x7c, 0xe4, 0x4d, 0x32, 0x08, 0xcd, 0x9b, 0xd8, 0xdf, 0x6a,
+ 0xa6, 0x48, 0xda, 0x5d, 0x7f, 0xf9, 0xff, 0x94, 0xd4, 0x7b, 0x96, 0x2d,
+ 0x3b, 0x74, 0x9b, 0x5d, 0xf5, 0x1b, 0xdf, 0x5c, 0x30, 0x05, 0x91, 0xfd,
+ 0x06, 0xc7, 0x08, 0x51, 0x34, 0xe0, 0x27, 0xf8, 0xa4, 0x96, 0x36, 0xa4,
+ 0xd0, 0x2b, 0xb0, 0xbc, 0xc3, 0x61, 0xc6, 0xad, 0xda, 0xa4, 0x65, 0x11,
+ 0x77, 0x67, 0x14, 0x0e, 0x58, 0xc6, 0xd6, 0x67, 0x5a, 0x2f, 0x4a, 0xa7,
+ 0x17, 0xc3, 0x1d, 0xf2, 0x14, 0x24, 0xa6, 0xfe, 0xae, 0x84, 0x74, 0x64,
+ 0xa9, 0x5d, 0xd8, 0x80, 0xf4, 0xc9, 0xae, 0x0c, 0x8e, 0x47, 0x3b, 0xe5,
+ 0x3b, 0xb7, 0xde, 0x15, 0x79, 0x3c, 0x20, 0xda, 0xc9, 0x68, 0xf3, 0xf9,
+ 0x29, 0x2c, 0xbb, 0x60, 0x17, 0xc3, 0x97, 0x3a, 0x5e, 0xb9, 0xac, 0xee,
+ 0x65, 0x3e, 0xe3, 0xd1, 0xaf, 0x46, 0xf6, 0x81, 0x5b, 0xfc, 0x07, 0xe2,
+ 0xea, 0x77, 0xdc, 0x14, 0x4e, 0x18, 0x10, 0x88, 0x34, 0x8f, 0x80, 0xb0,
+ 0x46, 0x55, 0xb4, 0x3e, 0x18, 0x41, 0x11, 0x18, 0xbe, 0xc9, 0x7f, 0x3c,
+ 0xf1, 0x81, 0x6d, 0x98, 0x13, 0x79, 0x8b, 0xd2, 0xad, 0x12, 0xba, 0xca,
+ 0x22, 0xd6, 0x10, 0xd5, 0x82, 0x70, 0x70, 0xf9, 0x3c, 0x33, 0x1f, 0xbe,
+ 0x21, 0xc8, 0x34, 0x91, 0x54, 0xb0, 0xdb, 0x30, 0x8d, 0xb2, 0x20, 0x87,
+ 0xcf, 0xef, 0xb7, 0x98, 0xaf, 0x28, 0x2b, 0x51, 0xf1, 0x76, 0xdd, 0xe3,
+ 0x46, 0x8f, 0xa2, 0xfe, 0xa2, 0x09, 0x83, 0x7f, 0xbf, 0xa0, 0x0b, 0xfa,
+ 0x03, 0x58, 0xe0, 0xc7
+};
+
+static const uint8_t dP_4096[] = { /* key component dP, 256 bytes */
+ 0x1b, 0x7f, 0xff, 0x06, 0x9e, 0x3d, 0x7a, 0xa7, 0x45, 0xac, 0x89, 0x16,
+ 0xb3, 0x13, 0x45, 0xa6, 0x8f, 0xae, 0x56, 0x2b, 0x5a, 0xb1, 0x36, 0x06,
+ 0xe5, 0xac, 0x8d, 0x37, 0xcd, 0x86, 0x6f, 0x34, 0x36, 0xab, 0x11, 0x30,
+ 0x5f, 0x29, 0xd7, 0x88, 0x03, 0xdd, 0xd7, 0xe8, 0xb7, 0x2d, 0x52, 0x1d,
+ 0x9c, 0x48, 0x1f, 0xc8, 0x6e, 0x2e, 0x81, 0x90, 0xbb, 0xaa, 0xee, 0xd5,
+ 0x91, 0xc2, 0x5a, 0x55, 0xcd, 0x0e, 0xa9, 0x47, 0xdb, 0x5e, 0x6f, 0x0f,
+ 0x6c, 0xf0, 0x64, 0xe7, 0xe5, 0x42, 0x0b, 0x7d, 0xc1, 0x6c, 0xaa, 0xb9,
+ 0xf3, 0x99, 0x61, 0xd5, 0x3d, 0x66, 0x53, 0x7b, 0x1a, 0x8c, 0x08, 0x8d,
+ 0xe7, 0xc4, 0x0c, 0xd3, 0x6e, 0xe9, 0x04, 0x29, 0xf3, 0xbe, 0x9f, 0x0b,
+ 0x34, 0x1e, 0x13, 0x82, 0x3f, 0x08, 0x18, 0x81, 0xd3, 0x35, 0x06, 0xcd,
+ 0xc4, 0xeb, 0x62, 0x17, 0x19, 0xe2, 0xe3, 0x0b, 0xce, 0x7e, 0x92, 0xa2,
+ 0x86, 0x65, 0xf8, 0xd7, 0x74, 0x81, 0x4c, 0x1d, 0x04, 0xb1, 0x0e, 0xc2,
+ 0x3e, 0x85, 0x68, 0x70, 0xd6, 0x74, 0xd3, 0xcb, 0x18, 0x74, 0xb8, 0x36,
+ 0x0f, 0x91, 0x58, 0x8b, 0x60, 0xa0, 0xc6, 0xe6, 0x96, 0x3b, 0x92, 0x87,
+ 0xb3, 0xac, 0x2c, 0x2b, 0xb6, 0xb6, 0x8d, 0x4a, 0x2e, 0xc7, 0x98, 0x35,
+ 0x3e, 0x2a, 0x2e, 0x24, 0xec, 0xd6, 0x74, 0xb7, 0x39, 0x89, 0x87, 0x24,
+ 0x4c, 0x3d, 0x42, 0x40, 0x2a, 0xff, 0x34, 0x30, 0x9b, 0x57, 0x6e, 0xe5,
+ 0x8b, 0x76, 0xf6, 0x30, 0x37, 0x4a, 0xa9, 0x33, 0xa4, 0x30, 0x61, 0x6e,
+ 0xaa, 0x1b, 0xd0, 0xfb, 0x47, 0x98, 0xd8, 0xe3, 0x8d, 0x89, 0xa5, 0x0d,
+ 0x8e, 0x01, 0xaf, 0x69, 0x9a, 0x58, 0xe2, 0x7e, 0xae, 0x4e, 0x6b, 0xd3,
+ 0x0f, 0xe4, 0xa4, 0xd6, 0xfe, 0xcb, 0x61, 0x2c, 0xbf, 0x61, 0xb0, 0x55,
+ 0x31, 0x68, 0xe9, 0x97
+};
+
+static const uint8_t dQ_4096[] = { /* key component dQ, 256 bytes */
+ 0x88, 0x36, 0xf3, 0x66, 0x71, 0x79, 0xf0, 0x18, 0xba, 0x1d, 0x18, 0x91,
+ 0x32, 0x27, 0xf0, 0xd0, 0x72, 0xd7, 0xe6, 0xf0, 0x47, 0x03, 0x7a, 0xca,
+ 0xba, 0x87, 0x7d, 0x6d, 0xdd, 0x5a, 0xa3, 0x6b, 0x40, 0x92, 0xfb, 0xc3,
+ 0x54, 0xa2, 0x9e, 0x12, 0x91, 0xf7, 0x38, 0x92, 0xe7, 0x4b, 0x64, 0x46,
+ 0xfd, 0x26, 0xe0, 0x74, 0xda, 0x0f, 0xa0, 0x91, 0x7f, 0xd6, 0xc1, 0x53,
+ 0xe7, 0xfd, 0x90, 0xe8, 0x9e, 0x53, 0xab, 0xc6, 0x39, 0xa6, 0x0a, 0xef,
+ 0x96, 0x7a, 0x4d, 0xb6, 0xd6, 0x7e, 0x6a, 0xf4, 0xc4, 0x1a, 0x1c, 0x14,
+ 0xb4, 0xcb, 0xec, 0xf3, 0xd0, 0xec, 0x1b, 0xd3, 0x02, 0xe2, 0x4f, 0x28,
+ 0xe0, 0x13, 0xe9, 0x00, 0x41, 0xb4, 0xe5, 0x33, 0xdd, 0x04, 0xc1, 0x97,
+ 0x25, 0xa9, 0xa2, 0x77, 0xd2, 0xb9, 0x6d, 0xff, 0x1c, 0x03, 0x39, 0x05,
+ 0x95, 0x17, 0x29, 0x5c, 0xfe, 0x3f, 0x13, 0x8c, 0xea, 0x2b, 0x80, 0x48,
+ 0x0b, 0xb0, 0xe2, 0xe9, 0x56, 0x26, 0xa0, 0x5f, 0xba, 0xa9, 0x87, 0xf8,
+ 0x34, 0xdf, 0xb9, 0x4d, 0xb6, 0xa3, 0x58, 0xa5, 0x35, 0xcd, 0x58, 0x56,
+ 0xc3, 0xaf, 0x11, 0x98, 0x82, 0x6b, 0xef, 0x52, 0x14, 0xd4, 0xd7, 0x0b,
+ 0x98, 0xe2, 0x98, 0x8a, 0x91, 0x06, 0x2d, 0x2c, 0xbb, 0x29, 0x35, 0x26,
+ 0x35, 0x1d, 0x32, 0x90, 0xfb, 0x49, 0xb0, 0xee, 0x03, 0x7f, 0xd2, 0xd5,
+ 0xbe, 0x19, 0x60, 0x62, 0x47, 0x8a, 0x97, 0x2d, 0x11, 0xbc, 0x5b, 0x39,
+ 0x1b, 0x16, 0xda, 0xe9, 0x67, 0x8c, 0xef, 0xba, 0x48, 0x46, 0xf5, 0xe8,
+ 0x65, 0x89, 0x3e, 0xcd, 0xc4, 0x11, 0xbd, 0x85, 0xce, 0x9b, 0x21, 0xda,
+ 0x8b, 0x72, 0xe7, 0x12, 0xfc, 0x2f, 0x64, 0xba, 0xbe, 0x1e, 0x2e, 0x2e,
+ 0x97, 0xc6, 0xcc, 0xa8, 0xf6, 0x06, 0xfe, 0xce, 0x83, 0x6d, 0x31, 0x99,
+ 0x8b, 0x3d, 0x29, 0x21
};
static const uint8_t u_4096[] = { /* key component u, 256 bytes */
- 0x17, 0x6d, 0x50, 0x05, 0xa2, 0x81, 0x24, 0x76, 0xce, 0xe4, 0x5b, 0xad,
- 0xfd, 0x41, 0x05, 0xac, 0x59, 0xe9, 0x03, 0x22, 0x4c, 0x8e, 0x70, 0xe1,
- 0xee, 0xfb, 0x66, 0x29, 0xee, 0x8e, 0x9a, 0x59, 0x84, 0x6c, 0x07, 0x71,
- 0xbb, 0x3c, 0x78, 0xf1, 0xa0, 0x5a, 0x23, 0x18, 0x35, 0xf9, 0xc6, 0x4e,
- 0x58, 0x64, 0xc0, 0xba, 0xa0, 0x35, 0xe7, 0xf6, 0x62, 0x20, 0x35, 0x61,
- 0x4f, 0x2b, 0x20, 0x62, 0x90, 0xfb, 0x77, 0x52, 0x0e, 0xdc, 0x17, 0x02,
- 0x10, 0xc3, 0xe6, 0x0f, 0xdf, 0x71, 0xf2, 0x94, 0xe8, 0x4b, 0xc6, 0x63,
- 0x57, 0x60, 0x9b, 0x78, 0xdb, 0xf9, 0xac, 0x6b, 0xc2, 0x0b, 0xb7, 0x35,
- 0xa7, 0xf3, 0xdd, 0x5e, 0x28, 0xdc, 0xb3, 0xea, 0xd4, 0xe2, 0xf5, 0xc4,
- 0xbe, 0xa1, 0x8e, 0x53, 0x61, 0x74, 0x82, 0x2d, 0x1c, 0xb4, 0x91, 0x28,
- 0x24, 0x97, 0xb0, 0x28, 0xc8, 0x64, 0x12, 0x45, 0xb5, 0xc4, 0x70, 0x31,
- 0xcc, 0x87, 0x65, 0x93, 0x4c, 0x1a, 0x05, 0x6c, 0x99, 0x9d, 0x03, 0xf5,
- 0x3b, 0x8f, 0x80, 0x1a, 0xe4, 0x40, 0x77, 0x82, 0xc1, 0xb7, 0x6e, 0x22,
- 0x5e, 0x7a, 0x6e, 0x27, 0x57, 0xb9, 0x73, 0xd7, 0xc1, 0x4b, 0x41, 0x14,
- 0x8d, 0xbb, 0x29, 0x21, 0xd9, 0xa3, 0x43, 0x4d, 0x44, 0x41, 0xe3, 0x20,
- 0x0f, 0x6f, 0x71, 0x18, 0x64, 0xc5, 0xc9, 0x94, 0x94, 0x28, 0xb3, 0x4e,
- 0x62, 0xe7, 0x69, 0xf9, 0xca, 0xa5, 0xbe, 0x49, 0xd0, 0xf0, 0xef, 0x97,
- 0x4e, 0x6a, 0x93, 0x4b, 0xb5, 0xb1, 0x95, 0x75, 0xa1, 0xc6, 0xed, 0x58,
- 0x46, 0xf0, 0x27, 0x24, 0x24, 0x9b, 0x6d, 0x48, 0xc0, 0x74, 0x6c, 0x0d,
- 0x92, 0xb7, 0x50, 0xe2, 0x7a, 0xce, 0xac, 0x48, 0xcc, 0x6c, 0x3c, 0x2b,
- 0x77, 0x06, 0x67, 0x41, 0x8c, 0xd6, 0xce, 0x41, 0x0c, 0x33, 0x8e, 0x8b,
- 0x32, 0x74, 0x7c, 0x25
+ 0xa8, 0xba, 0x71, 0xc4, 0x5d, 0xf5, 0xce, 0x37, 0xf6, 0xec, 0x56, 0xe3,
+ 0xe4, 0x11, 0x8a, 0x3a, 0xd1, 0x97, 0xd9, 0xd2, 0x32, 0x61, 0xd6, 0x47,
+ 0xae, 0x34, 0x10, 0x4c, 0x02, 0xe8, 0x08, 0x2a, 0x68, 0x58, 0x26, 0x42,
+ 0x0c, 0x4a, 0x7f, 0x87, 0xbd, 0xd8, 0x7c, 0xfc, 0xe0, 0xa5, 0x58, 0x14,
+ 0x08, 0xa9, 0x3c, 0x36, 0x00, 0x80, 0x53, 0x3a, 0x91, 0x8e, 0xe3, 0xfd,
+ 0x2d, 0x2b, 0x99, 0xb3, 0xeb, 0x60, 0x60, 0x13, 0xc9, 0x79, 0x95, 0xfa,
+ 0xe8, 0x30, 0x7e, 0x41, 0xfb, 0x79, 0xc7, 0x3d, 0x04, 0x85, 0x82, 0x8d,
+ 0xdb, 0xd5, 0x5b, 0x26, 0xf8, 0x7d, 0x8e, 0xbe, 0xa9, 0x24, 0x70, 0xe7,
+ 0x0b, 0x6f, 0x71, 0xfd, 0x83, 0xf5, 0x0b, 0x26, 0xb1, 0x2d, 0x79, 0x2f,
+ 0x81, 0xd3, 0x32, 0x7f, 0x86, 0x96, 0x76, 0x0d, 0xdf, 0x56, 0x5d, 0x6b,
+ 0x91, 0x60, 0xed, 0x32, 0xc8, 0xae, 0xe0, 0x03, 0x26, 0x78, 0x99, 0x78,
+ 0x56, 0x1d, 0x23, 0x5d, 0x05, 0x44, 0x20, 0x93, 0x8b, 0x56, 0x1c, 0x43,
+ 0x87, 0xec, 0x07, 0xe6, 0xfe, 0x86, 0xc4, 0xbb, 0x86, 0x03, 0xc7, 0x27,
+ 0xfa, 0x2f, 0x43, 0xcf, 0xba, 0xfd, 0x3b, 0x7c, 0xf3, 0x67, 0x16, 0xe3,
+ 0x30, 0x98, 0x21, 0x14, 0x8d, 0x3e, 0x9c, 0x65, 0x6a, 0x88, 0x47, 0xe3,
+ 0xaa, 0xc5, 0x89, 0x29, 0x0b, 0x55, 0x07, 0x6c, 0x95, 0x00, 0x2d, 0xbd,
+ 0xbb, 0xb3, 0x08, 0x9f, 0x42, 0x80, 0x71, 0x4f, 0x34, 0xb4, 0xe5, 0xaa,
+ 0xe4, 0x89, 0xf8, 0x36, 0xd7, 0x0a, 0xae, 0x80, 0x28, 0x51, 0x22, 0x8a,
+ 0x4e, 0xf7, 0x93, 0x0e, 0xf8, 0x54, 0x61, 0xe3, 0xdf, 0x81, 0x3c, 0x65,
+ 0x66, 0xb4, 0xd8, 0x6b, 0x83, 0xe3, 0xbd, 0x2f, 0xaa, 0x09, 0xb5, 0x25,
+ 0x72, 0x97, 0x34, 0x51, 0xd4, 0xf5, 0xd9, 0x14, 0x65, 0xdf, 0xf9, 0xd5,
+ 0xed, 0x5f, 0xce, 0xca
};
static const uint8_t m_4096[] = { /* message to be signed, 512 bytes */
@@ -562,53 +658,53 @@ static const uint8_t m_4096[] = { /* message to be signed, 512 bytes */
};
static const uint8_t s_4096[] = { /* signed message, 512 bytes */
- 0x1f, 0xf4, 0x15, 0x31, 0x5b, 0x8c, 0x8f, 0xb4, 0xe1, 0x8c, 0x9e, 0x7b,
- 0x9d, 0x48, 0x3a, 0xa6, 0x3e, 0xd5, 0x86, 0x8e, 0x0e, 0xdc, 0x2f, 0x3c,
- 0xae, 0xfd, 0xda, 0xad, 0x6a, 0x6b, 0x3a, 0x73, 0xc9, 0xca, 0x69, 0x79,
- 0x85, 0x59, 0xbd, 0xd1, 0xca, 0x7b, 0xf5, 0xe2, 0xc4, 0x32, 0x98, 0xcb,
- 0x1e, 0x57, 0x20, 0x3c, 0xe8, 0xd7, 0x8d, 0x3a, 0x73, 0xd9, 0x44, 0xca,
- 0x3b, 0x38, 0x92, 0x7c, 0xb0, 0x7c, 0x38, 0x6a, 0x2d, 0xa9, 0x3e, 0xc3,
- 0x5e, 0x77, 0xf3, 0x5d, 0x43, 0x3b, 0xea, 0xff, 0x23, 0x2a, 0x13, 0x50,
- 0x8c, 0x1a, 0x72, 0xe1, 0xc8, 0x55, 0x53, 0x3d, 0xbb, 0xf9, 0x7f, 0x3f,
- 0xb6, 0xf7, 0xec, 0xd9, 0x64, 0x45, 0x8f, 0xc7, 0xf8, 0x9d, 0xb1, 0xcb,
- 0x84, 0xa1, 0x6d, 0xbf, 0x15, 0xa2, 0x4e, 0x32, 0xcf, 0xdd, 0x98, 0x72,
- 0xe2, 0xfd, 0x43, 0x1d, 0x44, 0xde, 0xed, 0xc5, 0x43, 0x76, 0xdd, 0xf9,
- 0x13, 0xb9, 0x5d, 0x30, 0xd0, 0x69, 0xda, 0x2a, 0xce, 0xd0, 0x79, 0x88,
- 0xcc, 0x94, 0x7f, 0x35, 0xdf, 0x30, 0xb7, 0x05, 0xa9, 0x54, 0x41, 0x0e,
- 0x8a, 0x0d, 0x56, 0xb2, 0xf7, 0x1b, 0xe8, 0xb2, 0xb8, 0xd2, 0xe5, 0x4b,
- 0x3d, 0x2a, 0x57, 0x27, 0x02, 0xe0, 0x69, 0xb7, 0x52, 0x8a, 0xb3, 0x39,
- 0x5e, 0xdb, 0x5f, 0x52, 0x09, 0x62, 0xe8, 0xf2, 0xdb, 0x50, 0x44, 0x00,
- 0x77, 0x8a, 0x49, 0x80, 0xee, 0xf7, 0xad, 0x99, 0xb4, 0x73, 0xd3, 0x01,
- 0xca, 0xae, 0x09, 0x9f, 0xad, 0xb0, 0x23, 0xb1, 0x5b, 0x5b, 0xed, 0x34,
- 0xb6, 0xbf, 0x71, 0x90, 0xeb, 0xa6, 0x31, 0x58, 0xe5, 0xce, 0xa5, 0x5a,
- 0x7c, 0x7c, 0x6a, 0x90, 0x34, 0x3f, 0x84, 0x16, 0x6c, 0x7c, 0xae, 0x1f,
- 0x00, 0xab, 0x6a, 0xe5, 0x09, 0x09, 0x83, 0xe8, 0xf0, 0x78, 0xfa, 0xe8,
- 0xe9, 0x81, 0xd0, 0x7f, 0xc4, 0x20, 0x70, 0x10, 0xcf, 0xd4, 0x0f, 0x0b,
- 0x0f, 0x50, 0x53, 0x15, 0x62, 0xf5, 0x68, 0xcf, 0x7f, 0x3b, 0xdd, 0x1d,
- 0x88, 0x7a, 0x9b, 0xea, 0x38, 0x89, 0x70, 0x69, 0x04, 0x0b, 0x54, 0xb3,
- 0xc7, 0x9c, 0x27, 0xe3, 0x51, 0xb8, 0xaf, 0x9d, 0xf8, 0xbf, 0xdd, 0x8d,
- 0x9f, 0xe2, 0x33, 0xd5, 0x32, 0x44, 0xd1, 0xae, 0xc3, 0x1e, 0x0f, 0xab,
- 0xcd, 0x41, 0x9a, 0x5f, 0x48, 0x51, 0xe9, 0x4e, 0x46, 0x89, 0xee, 0x53,
- 0xa4, 0x48, 0x36, 0xff, 0xfd, 0xfa, 0xd1, 0xd6, 0xa3, 0x5d, 0xc4, 0xb9,
- 0xbd, 0x87, 0x83, 0xcb, 0x6a, 0x00, 0x6d, 0x3c, 0x07, 0x3e, 0xd3, 0xf5,
- 0x87, 0xb2, 0xa1, 0x85, 0x13, 0x80, 0x59, 0xac, 0x58, 0x8e, 0xcf, 0xf3,
- 0x01, 0x42, 0x09, 0x6b, 0xed, 0x54, 0xbb, 0x82, 0xe6, 0xbb, 0xd9, 0xd2,
- 0xfa, 0x02, 0x90, 0x0f, 0x68, 0xff, 0xa8, 0x26, 0x14, 0x02, 0xc3, 0xf3,
- 0x39, 0xc4, 0xde, 0x7e, 0x66, 0x23, 0xfe, 0x2e, 0x9d, 0x13, 0xdb, 0xc8,
- 0x91, 0x4b, 0x54, 0x7b, 0x2b, 0x78, 0x8b, 0x2b, 0x4e, 0xef, 0x3d, 0x47,
- 0x8c, 0xd7, 0x60, 0x9f, 0x45, 0x26, 0xe6, 0x4e, 0x46, 0x9d, 0x35, 0x52,
- 0x81, 0x8f, 0xc6, 0xd7, 0x5a, 0x4e, 0x90, 0xc5, 0x1a, 0x69, 0x52, 0x40,
- 0x4b, 0x79, 0xef, 0xe7, 0x68, 0x26, 0xe2, 0xbb, 0x52, 0xa5, 0x78, 0xec,
- 0xe4, 0xfb, 0x32, 0xcb, 0x81, 0xad, 0xc0, 0x7b, 0xe4, 0x14, 0x12, 0x80,
- 0xa8, 0xb8, 0xea, 0xb3, 0xbb, 0x28, 0x74, 0x39, 0x89, 0xfa, 0x38, 0x3d,
- 0xa5, 0x8d, 0xfd, 0xb1, 0x3f, 0x20, 0xc1, 0x33, 0x33, 0xa9, 0xcf, 0x1c,
- 0xa1, 0xe6, 0x3a, 0x1e, 0x95, 0x46, 0x37, 0xbc, 0xdd, 0x94, 0x34, 0x53,
- 0x33, 0xef, 0x46, 0x72, 0xde, 0xc2, 0x87, 0xac, 0xe1, 0xfa, 0xb0, 0x67,
- 0xb6, 0xbe, 0x5c, 0x45, 0x78, 0xee, 0xa9, 0xa2
+ 0xad, 0x46, 0xb3, 0x86, 0xb3, 0x3d, 0x13, 0xb7, 0x56, 0x0c, 0xbf, 0xd8,
+ 0xfe, 0xf4, 0xf2, 0x0d, 0x2d, 0x5a, 0x28, 0xad, 0xb5, 0x43, 0x7b, 0x88,
+ 0x5f, 0x01, 0xa4, 0x01, 0xd6, 0x28, 0x3b, 0x10, 0x0e, 0x22, 0x89, 0x11,
+ 0xc4, 0x3e, 0xcf, 0xbb, 0xaf, 0xd6, 0x82, 0xd9, 0x51, 0xb1, 0x93, 0xd6,
+ 0xc8, 0x7b, 0x89, 0xd4, 0x7a, 0xd1, 0xd0, 0x08, 0x39, 0x6b, 0x13, 0xb5,
+ 0x55, 0x75, 0x61, 0xf3, 0xce, 0x47, 0x77, 0x01, 0x29, 0xee, 0x07, 0x5e,
+ 0x4d, 0xdf, 0x83, 0x80, 0x18, 0x6d, 0xb8, 0x57, 0x14, 0x45, 0x81, 0x27,
+ 0x1e, 0xe3, 0x2f, 0xdf, 0x0a, 0xba, 0x3b, 0x0f, 0x12, 0x07, 0xff, 0x7f,
+ 0x35, 0x44, 0x75, 0xe3, 0xa8, 0x39, 0x25, 0x88, 0x3c, 0x32, 0x9e, 0x8a,
+ 0xd6, 0xfa, 0x3f, 0x89, 0xa4, 0x6d, 0x8a, 0x9d, 0x3d, 0x75, 0x2c, 0x6f,
+ 0x2a, 0x85, 0xd8, 0x96, 0x47, 0x4b, 0xde, 0x2a, 0x6b, 0x5e, 0xe1, 0x88,
+ 0xcd, 0x37, 0xfb, 0x17, 0xe2, 0x84, 0x81, 0xe7, 0xa8, 0x7c, 0x47, 0x8e,
+ 0x69, 0x69, 0x91, 0x37, 0x71, 0x97, 0x3f, 0xd1, 0x1a, 0x3e, 0x34, 0x84,
+ 0x52, 0xe0, 0x08, 0x2c, 0x4c, 0xdc, 0x02, 0x11, 0x08, 0x30, 0xc9, 0xf5,
+ 0x85, 0xc6, 0x6b, 0xba, 0x59, 0xc1, 0xf2, 0xc6, 0x7f, 0x8c, 0x4a, 0x57,
+ 0xe5, 0x29, 0xa5, 0x0d, 0x60, 0x1a, 0x0e, 0xda, 0xd1, 0xac, 0xcc, 0x21,
+ 0x20, 0x5c, 0xa0, 0x62, 0xf6, 0xc6, 0x4a, 0x92, 0xb2, 0x35, 0x9f, 0x62,
+ 0x51, 0x4d, 0xcb, 0xd0, 0x35, 0x4e, 0xb2, 0xa3, 0x1b, 0xec, 0xd6, 0x18,
+ 0xb4, 0x67, 0xb9, 0xf8, 0x5c, 0x80, 0xfc, 0x20, 0x05, 0x85, 0x8a, 0x5a,
+ 0x35, 0x9a, 0xde, 0x2c, 0xd9, 0xde, 0x21, 0xfe, 0x9f, 0x92, 0x9f, 0xcb,
+ 0xb8, 0xea, 0x56, 0xf9, 0xb7, 0x4f, 0x61, 0xf9, 0x20, 0x09, 0xfe, 0x78,
+ 0x4b, 0x92, 0x90, 0x7a, 0xf9, 0xd0, 0x28, 0x95, 0x34, 0xc6, 0x5a, 0x9a,
+ 0x2a, 0x2a, 0xb8, 0xab, 0x6a, 0x1a, 0xc1, 0xd7, 0x7d, 0x5c, 0xde, 0xd1,
+ 0xaf, 0xe2, 0x20, 0x8d, 0x62, 0x56, 0x2c, 0x71, 0x78, 0x5b, 0x29, 0x20,
+ 0x4b, 0xf0, 0xe9, 0xa4, 0xe2, 0x3f, 0xab, 0xa2, 0x77, 0xac, 0xdf, 0x6e,
+ 0x2e, 0xc3, 0xa1, 0x4f, 0xe0, 0x30, 0xa7, 0xb7, 0x3a, 0x05, 0x13, 0x43,
+ 0xc1, 0x64, 0xdd, 0xff, 0x96, 0x65, 0x4c, 0x40, 0x62, 0x4a, 0xff, 0xa3,
+ 0xf0, 0x81, 0x26, 0x5d, 0x5f, 0x55, 0x73, 0xdb, 0x7d, 0xf8, 0x1f, 0x9c,
+ 0x0a, 0x64, 0x93, 0x74, 0xf3, 0xeb, 0x3d, 0x6f, 0x68, 0xec, 0x85, 0x5a,
+ 0xaa, 0x91, 0xb8, 0x5a, 0x36, 0x64, 0x89, 0x66, 0xb1, 0x53, 0xc5, 0xb8,
+ 0x5d, 0x33, 0xf7, 0x60, 0xc2, 0x89, 0x36, 0xef, 0x0d, 0xc5, 0x58, 0x08,
+ 0x75, 0x40, 0xae, 0x04, 0x87, 0x74, 0x1f, 0x11, 0x65, 0x1c, 0x84, 0xb6,
+ 0x60, 0xa0, 0xae, 0xe2, 0x2e, 0x70, 0xbe, 0x6a, 0x5d, 0x76, 0x60, 0xaa,
+ 0x41, 0xc5, 0x35, 0x09, 0xd3, 0x25, 0x5e, 0xd4, 0x7f, 0x22, 0x2b, 0xd7,
+ 0x09, 0x38, 0xae, 0x59, 0xde, 0x55, 0x88, 0x52, 0xae, 0x30, 0xfc, 0xb8,
+ 0x61, 0xdd, 0x7e, 0xc7, 0x1b, 0x37, 0xd5, 0x83, 0x28, 0x2a, 0x6e, 0x38,
+ 0x01, 0xb5, 0xd4, 0x3f, 0x34, 0xb6, 0x37, 0xd5, 0xbf, 0x59, 0x6e, 0xb7,
+ 0x16, 0x07, 0x96, 0x76, 0xe7, 0x84, 0x1b, 0x24, 0x59, 0x0b, 0x0a, 0x5c,
+ 0x5b, 0xef, 0xae, 0xc7, 0x7d, 0x18, 0x7e, 0x7c, 0x1a, 0xd5, 0x24, 0x2e,
+ 0xe9, 0x7f, 0x92, 0x3f, 0x4d, 0xd2, 0x0e, 0x44, 0xd1, 0x60, 0x73, 0xef,
+ 0x9b, 0xb6, 0x43, 0x87, 0xdd, 0x43, 0x1c, 0xa2, 0x67, 0x3e, 0x80, 0x5f,
+ 0x50, 0x6d, 0x5c, 0xb6, 0x90, 0xd5, 0x14, 0xce, 0xad, 0xbc, 0x2e, 0x39,
+ 0x62, 0x96, 0xc3, 0x25, 0xec, 0xa4, 0xd8, 0xf2
};
typedef struct { const uint8_t *val; size_t len; } rsa_tc_bn_t;
-typedef struct { size_t size; rsa_tc_bn_t n, e, d, p, q, u, m, s; } rsa_tc_t;
+typedef struct { size_t size; rsa_tc_bn_t n, e, d, p, q, dP, dQ, u, m, s; } rsa_tc_t;
static const rsa_tc_t rsa_tc[] = {
{ 1024,
@@ -617,6 +713,8 @@ static const rsa_tc_t rsa_tc[] = {
{ d_1024, sizeof(d_1024) },
{ p_1024, sizeof(p_1024) },
{ q_1024, sizeof(q_1024) },
+ { dP_1024, sizeof(dP_1024) },
+ { dQ_1024, sizeof(dQ_1024) },
{ u_1024, sizeof(u_1024) },
{ m_1024, sizeof(m_1024) },
{ s_1024, sizeof(s_1024) }
@@ -627,6 +725,8 @@ static const rsa_tc_t rsa_tc[] = {
{ d_2048, sizeof(d_2048) },
{ p_2048, sizeof(p_2048) },
{ q_2048, sizeof(q_2048) },
+ { dP_2048, sizeof(dP_2048) },
+ { dQ_2048, sizeof(dQ_2048) },
{ u_2048, sizeof(u_2048) },
{ m_2048, sizeof(m_2048) },
{ s_2048, sizeof(s_2048) }
@@ -637,6 +737,8 @@ static const rsa_tc_t rsa_tc[] = {
{ d_4096, sizeof(d_4096) },
{ p_4096, sizeof(p_4096) },
{ q_4096, sizeof(q_4096) },
+ { dP_4096, sizeof(dP_4096) },
+ { dQ_4096, sizeof(dQ_4096) },
{ u_4096, sizeof(u_4096) },
{ m_4096, sizeof(m_4096) },
{ s_4096, sizeof(s_4096) }
diff --git a/tests/test-rsa.py b/tests/test-rsa.py
index 3824276..8f3f8b5 100644
--- a/tests/test-rsa.py
+++ b/tests/test-rsa.py
@@ -36,7 +36,7 @@ from argparse import ArgumentParser, FileType
from Crypto import __version__ as PyCryptoVersion
from Crypto.PublicKey import RSA
from Crypto.Hash import SHA256
-from Crypto.Util.number import long_to_bytes
+from Crypto.Util.number import long_to_bytes, inverse
from Crypto.Signature.PKCS1_v1_5 import EMSA_PKCS1_V1_5_ENCODE, PKCS115_SigScheme
from textwrap import TextWrapper
import sys, os.path
@@ -101,6 +101,8 @@ printlines("/*",
plaintext = plaintext,
digest = h.hexdigest())
+fields = ("n", "e", "d", "p", "q", "dP", "dQ", "u", "m", "s")
+
for k_len in args.key_lengths:
k = RSA.generate(k_len) # Cryptlib insists u < p, probably with good reason,
@@ -123,14 +125,29 @@ for k_len in args.key_lengths:
"*/", "",
k_len = k_len, pkcs = args.pkcs_encoding)
- for component in k.keydata:
- print_hex("%s_%d" % (component, k_len),
- long_to_bytes(getattr(k, component), blocksize = blocksize),
- "key component %s" % component)
+ # PyCrypto doesn't precalculate dP or dQ, and for some reason it
+ # does u backwards (uses (1/p % q) and swaps the roles of p and q in
+ # the CRT calculation to compensate), so we just calculate our own.
+
+ for name in fields:
+ if name in "ms":
+ continue
+ elif name == "dP":
+ value = k.d % (k.p - 1)
+ elif name == "dQ":
+ value = k.d % (k.q - 1)
+ elif name == "u":
+ value = inverse(k.q, k.p)
+ else:
+ value = getattr(k, name)
+
+ print_hex("%s_%d" % (name, k_len),
+ long_to_bytes(value, blocksize = blocksize),
+ "key component %s" % name)
+
print_hex("m_%d" % k_len, pad_to_blocksize(m, blocksize), "message to be signed")
print_hex("s_%d" % k_len, pad_to_blocksize(s, blocksize), "signed message")
-fields = "nedpqums"
printlines("typedef struct { const uint8_t *val; size_t len; } rsa_tc_bn_t;",
"typedef struct { size_t size; rsa_tc_bn_t %(fields)s; } rsa_tc_t;",
"",
More information about the Commits
mailing list