aboutsummaryrefslogtreecommitdiff
path: root/src/util/perf_crypto_rsa.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/util/perf_crypto_rsa.c')
-rw-r--r--src/util/perf_crypto_rsa.c241
1 files changed, 123 insertions, 118 deletions
diff --git a/src/util/perf_crypto_rsa.c b/src/util/perf_crypto_rsa.c
index 33740666e..c65739f1f 100644
--- a/src/util/perf_crypto_rsa.c
+++ b/src/util/perf_crypto_rsa.c
@@ -34,7 +34,7 @@
34 * @param len keylength to evaluate with 34 * @param len keylength to evaluate with
35 */ 35 */
36static void 36static void
37eval(unsigned int len) 37eval (unsigned int len)
38{ 38{
39 struct GNUNET_TIME_Absolute start; 39 struct GNUNET_TIME_Absolute start;
40 struct GNUNET_CRYPTO_RsaSignature *sig; 40 struct GNUNET_CRYPTO_RsaSignature *sig;
@@ -48,29 +48,30 @@ eval(unsigned int len)
48 size_t bbuf_len; 48 size_t bbuf_len;
49 struct GNUNET_HashCode hc; 49 struct GNUNET_HashCode hc;
50 50
51 start = GNUNET_TIME_absolute_get(); 51 start = GNUNET_TIME_absolute_get ();
52 for (i = 0; i < 10; i++) 52 for (i = 0; i < 10; i++)
53 { 53 {
54 private_key = GNUNET_CRYPTO_rsa_private_key_create(len); 54 private_key = GNUNET_CRYPTO_rsa_private_key_create (len);
55 GNUNET_CRYPTO_rsa_private_key_free(private_key); 55 GNUNET_CRYPTO_rsa_private_key_free (private_key);
56 } 56 }
57 printf("10x %u-key generation took %s\n", 57 printf ("10x %u-key generation took %s\n",
58 len, 58 len,
59 GNUNET_STRINGS_relative_time_to_string(GNUNET_TIME_absolute_get_duration(start), 59 GNUNET_STRINGS_relative_time_to_string (
60 GNUNET_YES)); 60 GNUNET_TIME_absolute_get_duration (start),
61 GNUNET_snprintf(sbuf, 61 GNUNET_YES));
62 sizeof(sbuf), 62 GNUNET_snprintf (sbuf,
63 "RSA %u-key generation", 63 sizeof(sbuf),
64 len); 64 "RSA %u-key generation",
65 GAUGER("UTIL", sbuf, 65 len);
66 64 * 1024 / (1 + 66 GAUGER ("UTIL", sbuf,
67 GNUNET_TIME_absolute_get_duration 67 64 * 1024 / (1
68 (start).rel_value_us / 1000LL), "keys/ms"); 68 + GNUNET_TIME_absolute_get_duration
69 private_key = GNUNET_CRYPTO_rsa_private_key_create(len); 69 (start).rel_value_us / 1000LL), "keys/ms");
70 public_key = GNUNET_CRYPTO_rsa_private_key_get_public(private_key); 70 private_key = GNUNET_CRYPTO_rsa_private_key_create (len);
71 public_key = GNUNET_CRYPTO_rsa_private_key_get_public (private_key);
71 for (i = 0; i < 10; i++) 72 for (i = 0; i < 10; i++)
72 GNUNET_CRYPTO_random_block(GNUNET_CRYPTO_QUALITY_WEAK, 73 GNUNET_CRYPTO_random_block (GNUNET_CRYPTO_QUALITY_WEAK,
73 &bsec[i], sizeof(bsec[0])); 74 &bsec[i], sizeof(bsec[0]));
74 /* 75 /*
75 start = GNUNET_TIME_absolute_get (); 76 start = GNUNET_TIME_absolute_get ();
76 for (i=0;i<10;i++) 77 for (i=0;i<10;i++)
@@ -88,113 +89,117 @@ eval(unsigned int len)
88 GNUNET_TIME_absolute_get_duration 89 GNUNET_TIME_absolute_get_duration
89 (start).rel_value_us / 1000LL), "keys/ms"); 90 (start).rel_value_us / 1000LL), "keys/ms");
90 */ 91 */
91 start = GNUNET_TIME_absolute_get(); 92 start = GNUNET_TIME_absolute_get ();
92 GNUNET_CRYPTO_hash("test", 4, &hc); 93 GNUNET_CRYPTO_hash ("test", 4, &hc);
93 for (i = 0; i < 10; i++) 94 for (i = 0; i < 10; i++)
94 { 95 {
95 GNUNET_CRYPTO_rsa_blind(&hc, 96 GNUNET_CRYPTO_rsa_blind (&hc,
96 &bsec[i], 97 &bsec[i],
97 public_key, 98 public_key,
98 &bbuf, &bbuf_len); 99 &bbuf, &bbuf_len);
99 GNUNET_free(bbuf); 100 GNUNET_free (bbuf);
100 } 101 }
101 printf("10x %u-blinding took %s\n", 102 printf ("10x %u-blinding took %s\n",
102 len, 103 len,
103 GNUNET_STRINGS_relative_time_to_string(GNUNET_TIME_absolute_get_duration(start), 104 GNUNET_STRINGS_relative_time_to_string (
104 GNUNET_YES)); 105 GNUNET_TIME_absolute_get_duration (start),
105 GNUNET_snprintf(sbuf, 106 GNUNET_YES));
106 sizeof(sbuf), 107 GNUNET_snprintf (sbuf,
107 "RSA %u-blinding", 108 sizeof(sbuf),
108 len); 109 "RSA %u-blinding",
109 GAUGER("UTIL", 110 len);
110 sbuf, 111 GAUGER ("UTIL",
111 64 * 1024 / (1 + 112 sbuf,
112 GNUNET_TIME_absolute_get_duration 113 64 * 1024 / (1
113 (start).rel_value_us / 1000LL), "ops/ms"); 114 + GNUNET_TIME_absolute_get_duration
114 GNUNET_CRYPTO_rsa_blind(&hc, 115 (start).rel_value_us / 1000LL), "ops/ms");
115 &bsec[0], 116 GNUNET_CRYPTO_rsa_blind (&hc,
116 public_key, 117 &bsec[0],
117 &bbuf, &bbuf_len); 118 public_key,
118 start = GNUNET_TIME_absolute_get(); 119 &bbuf, &bbuf_len);
120 start = GNUNET_TIME_absolute_get ();
119 for (i = 0; i < 10; i++) 121 for (i = 0; i < 10; i++)
120 { 122 {
121 sig = GNUNET_CRYPTO_rsa_sign_blinded(private_key, 123 sig = GNUNET_CRYPTO_rsa_sign_blinded (private_key,
122 bbuf, bbuf_len); 124 bbuf, bbuf_len);
123 GNUNET_CRYPTO_rsa_signature_free(sig); 125 GNUNET_CRYPTO_rsa_signature_free (sig);
124 } 126 }
125 printf("10x %u-signing took %s\n", 127 printf ("10x %u-signing took %s\n",
126 len, 128 len,
127 GNUNET_STRINGS_relative_time_to_string(GNUNET_TIME_absolute_get_duration(start), 129 GNUNET_STRINGS_relative_time_to_string (
128 GNUNET_YES)); 130 GNUNET_TIME_absolute_get_duration (start),
129 GNUNET_snprintf(sbuf, 131 GNUNET_YES));
130 sizeof(sbuf), 132 GNUNET_snprintf (sbuf,
131 "RSA %u-signing", 133 sizeof(sbuf),
132 len); 134 "RSA %u-signing",
133 GAUGER("UTIL", 135 len);
134 sbuf, 136 GAUGER ("UTIL",
135 64 * 1024 / (1 + 137 sbuf,
136 GNUNET_TIME_absolute_get_duration 138 64 * 1024 / (1
137 (start).rel_value_us / 1000LL), "ops/ms"); 139 + GNUNET_TIME_absolute_get_duration
138 sig = GNUNET_CRYPTO_rsa_sign_blinded(private_key, 140 (start).rel_value_us / 1000LL), "ops/ms");
139 bbuf, 141 sig = GNUNET_CRYPTO_rsa_sign_blinded (private_key,
140 bbuf_len); 142 bbuf,
141 start = GNUNET_TIME_absolute_get(); 143 bbuf_len);
144 start = GNUNET_TIME_absolute_get ();
142 for (i = 0; i < 10; i++) 145 for (i = 0; i < 10; i++)
143 { 146 {
144 rsig = GNUNET_CRYPTO_rsa_unblind(sig, 147 rsig = GNUNET_CRYPTO_rsa_unblind (sig,
145 &bsec[0], 148 &bsec[0],
146 public_key); 149 public_key);
147 GNUNET_CRYPTO_rsa_signature_free(rsig); 150 GNUNET_CRYPTO_rsa_signature_free (rsig);
148 } 151 }
149 printf("10x %u-unblinding took %s\n", 152 printf ("10x %u-unblinding took %s\n",
150 len, 153 len,
151 GNUNET_STRINGS_relative_time_to_string(GNUNET_TIME_absolute_get_duration(start), 154 GNUNET_STRINGS_relative_time_to_string (
152 GNUNET_YES)); 155 GNUNET_TIME_absolute_get_duration (start),
153 GNUNET_snprintf(sbuf, 156 GNUNET_YES));
154 sizeof(sbuf), 157 GNUNET_snprintf (sbuf,
155 "RSA %u-unblinding", 158 sizeof(sbuf),
156 len); 159 "RSA %u-unblinding",
157 GAUGER("UTIL", 160 len);
158 sbuf, 161 GAUGER ("UTIL",
159 64 * 1024 / (1 + 162 sbuf,
160 GNUNET_TIME_absolute_get_duration 163 64 * 1024 / (1
161 (start).rel_value_us / 1000LL), "ops/ms"); 164 + GNUNET_TIME_absolute_get_duration
162 rsig = GNUNET_CRYPTO_rsa_unblind(sig, 165 (start).rel_value_us / 1000LL), "ops/ms");
163 &bsec[0], 166 rsig = GNUNET_CRYPTO_rsa_unblind (sig,
164 public_key); 167 &bsec[0],
165 start = GNUNET_TIME_absolute_get(); 168 public_key);
169 start = GNUNET_TIME_absolute_get ();
166 for (i = 0; i < 10; i++) 170 for (i = 0; i < 10; i++)
167 { 171 {
168 GNUNET_assert(GNUNET_OK == 172 GNUNET_assert (GNUNET_OK ==
169 GNUNET_CRYPTO_rsa_verify(&hc, 173 GNUNET_CRYPTO_rsa_verify (&hc,
170 rsig, 174 rsig,
171 public_key)); 175 public_key));
172 } 176 }
173 printf("10x %u-verifying took %s\n", 177 printf ("10x %u-verifying took %s\n",
174 len, 178 len,
175 GNUNET_STRINGS_relative_time_to_string(GNUNET_TIME_absolute_get_duration(start), 179 GNUNET_STRINGS_relative_time_to_string (
176 GNUNET_YES)); 180 GNUNET_TIME_absolute_get_duration (start),
177 GNUNET_snprintf(sbuf, 181 GNUNET_YES));
178 sizeof(sbuf), 182 GNUNET_snprintf (sbuf,
179 "RSA %u-verification", 183 sizeof(sbuf),
180 len); 184 "RSA %u-verification",
181 GAUGER("UTIL", 185 len);
182 sbuf, 186 GAUGER ("UTIL",
183 64 * 1024 / (1 + 187 sbuf,
184 GNUNET_TIME_absolute_get_duration 188 64 * 1024 / (1
185 (start).rel_value_us / 1000LL), "ops/ms"); 189 + GNUNET_TIME_absolute_get_duration
186 GNUNET_CRYPTO_rsa_signature_free(sig); 190 (start).rel_value_us / 1000LL), "ops/ms");
187 GNUNET_CRYPTO_rsa_public_key_free(public_key); 191 GNUNET_CRYPTO_rsa_signature_free (sig);
188 GNUNET_CRYPTO_rsa_private_key_free(private_key); 192 GNUNET_CRYPTO_rsa_public_key_free (public_key);
189 GNUNET_free(bbuf); 193 GNUNET_CRYPTO_rsa_private_key_free (private_key);
194 GNUNET_free (bbuf);
190} 195}
191 196
192 197
193int 198int
194main(int argc, char *argv[]) 199main (int argc, char *argv[])
195{ 200{
196 eval(1024); 201 eval (1024);
197 eval(2048); 202 eval (2048);
198 /* eval (4096); */ 203 /* eval (4096); */
199 return 0; 204 return 0;
200} 205}