OLD | NEW |
1 /* Copyright (c) 2010 The Chromium OS Authors. All rights reserved. | 1 /* Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
2 * Use of this source code is governed by a BSD-style license that can be | 2 * Use of this source code is governed by a BSD-style license that can be |
3 * found in the LICENSE file. | 3 * found in the LICENSE file. |
4 */ | 4 */ |
5 | 5 |
6 /* C port of DumpPublicKey.java from the Android Open source project with | 6 /* C port of DumpPublicKey.java from the Android Open source project with |
7 * support for additional RSA key sizes. (platform/system/core,git/libmincrypt | 7 * support for additional RSA key sizes. (platform/system/core,git/libmincrypt |
8 * /tools/DumpPublicKey.java). Uses the OpenSSL X509 and BIGNUM library. | 8 * /tools/DumpPublicKey.java). Uses the OpenSSL X509 and BIGNUM library. |
9 */ | 9 */ |
10 | 10 |
(...skipping 25 matching lines...) Expand all Loading... |
36 return 0; | 36 return 0; |
37 } | 37 } |
38 return 1; | 38 return 1; |
39 } | 39 } |
40 | 40 |
41 /* Pre-processes and outputs RSA public key to standard out. | 41 /* Pre-processes and outputs RSA public key to standard out. |
42 */ | 42 */ |
43 void output(RSA* key) { | 43 void output(RSA* key) { |
44 int i, nwords; | 44 int i, nwords; |
45 BIGNUM *N = key->n; | 45 BIGNUM *N = key->n; |
46 BIGNUM *Big1, *Big2, *Big32, *BigMinus1; | 46 BIGNUM *Big1 = NULL, *Big2 = NULL, *Big32 = NULL, *BigMinus1 = NULL; |
47 BIGNUM *B; | 47 BIGNUM *B = NULL; |
48 BIGNUM *N0inv, *R, *RR, *RRTemp, *NnumBits; | 48 BIGNUM *N0inv= NULL, *R = NULL, *RR = NULL, *RRTemp = NULL, *NnumBits = NULL; |
49 BIGNUM *n, *rr; | 49 BIGNUM *n = NULL, *rr = NULL; |
50 BN_CTX *bn_ctx = BN_CTX_new(); | 50 BN_CTX *bn_ctx = BN_CTX_new(); |
51 uint32_t n0invout; | 51 uint32_t n0invout; |
52 | 52 |
53 N = key->n; | 53 N = key->n; |
54 /* Output size of RSA key in 32-bit words */ | 54 /* Output size of RSA key in 32-bit words */ |
55 nwords = BN_num_bits(N) / 32; | 55 nwords = BN_num_bits(N) / 32; |
56 if (-1 == write(1, &nwords, sizeof(nwords))) | 56 if (-1 == write(1, &nwords, sizeof(nwords))) |
57 goto failure; | 57 goto failure; |
58 | 58 |
59 | 59 |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
172 output (pubkey); | 172 output (pubkey); |
173 } | 173 } |
174 | 174 |
175 fail: | 175 fail: |
176 X509_free(cert); | 176 X509_free(cert); |
177 RSA_free(pubkey); | 177 RSA_free(pubkey); |
178 fclose(fp); | 178 fclose(fp); |
179 | 179 |
180 return 0; | 180 return 0; |
181 } | 181 } |
OLD | NEW |