| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium 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 #include "chrome/browser/devtools/adb/android_rsa.h" | 5 #include "chrome/browser/devtools/adb/android_rsa.h" |
| 6 | 6 |
| 7 #include "base/base64.h" | 7 #include "base/base64.h" |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "chrome/browser/prefs/pref_service_syncable.h" | 9 #include "chrome/browser/prefs/pref_service_syncable.h" |
| 10 #include "chrome/browser/profiles/profile.h" | 10 #include "chrome/browser/profiles/profile.h" |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 93 return result; | 93 return result; |
| 94 } | 94 } |
| 95 | 95 |
| 96 void BnSub(uint32* a, uint32* b) { | 96 void BnSub(uint32* a, uint32* b) { |
| 97 int carry_over = 0; | 97 int carry_over = 0; |
| 98 for (size_t i = 0; i < kBigIntSize; ++i) { | 98 for (size_t i = 0; i < kBigIntSize; ++i) { |
| 99 int64 sub = static_cast<int64>(a[i]) - b[i] - carry_over; | 99 int64 sub = static_cast<int64>(a[i]) - b[i] - carry_over; |
| 100 carry_over = 0; | 100 carry_over = 0; |
| 101 if (sub < 0) { | 101 if (sub < 0) { |
| 102 carry_over = 1; | 102 carry_over = 1; |
| 103 sub += GG_LONGLONG(0x100000000); | 103 sub += 0x100000000LL; |
| 104 } | 104 } |
| 105 a[i] = static_cast<uint32>(sub); | 105 a[i] = static_cast<uint32>(sub); |
| 106 } | 106 } |
| 107 } | 107 } |
| 108 | 108 |
| 109 void BnLeftShift(uint32* a, int offset) { | 109 void BnLeftShift(uint32* a, int offset) { |
| 110 for (int i = kBigIntSize - offset - 1; i >= 0; --i) | 110 for (int i = kBigIntSize - offset - 1; i >= 0; --i) |
| 111 a[i + offset] = a[i]; | 111 a[i + offset] = a[i]; |
| 112 for (int i = 0; i < offset; ++i) | 112 for (int i = 0; i < offset; ++i) |
| 113 a[i] = 0; | 113 a[i] = 0; |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 226 t += pk_data[4 * i + 2]; | 226 t += pk_data[4 * i + 2]; |
| 227 t = t << 8; | 227 t = t << 8; |
| 228 t += pk_data[4 * i + 3]; | 228 t += pk_data[4 * i + 3]; |
| 229 n[kRSANumWords - i - 1] = t; | 229 n[kRSANumWords - i - 1] = t; |
| 230 } | 230 } |
| 231 uint64 n0 = n[0]; | 231 uint64 n0 = n[0]; |
| 232 | 232 |
| 233 RSAPublicKey pkey; | 233 RSAPublicKey pkey; |
| 234 pkey.len = kRSANumWords; | 234 pkey.len = kRSANumWords; |
| 235 pkey.exponent = 65537; // Fixed public exponent | 235 pkey.exponent = 65537; // Fixed public exponent |
| 236 pkey.n0inv = 0 - ModInverse(n0, GG_LONGLONG(0x100000000)); | 236 pkey.n0inv = 0 - ModInverse(n0, 0x100000000LL); |
| 237 if (pkey.n0inv == 0) | 237 if (pkey.n0inv == 0) |
| 238 return kDummyRSAPublicKey; | 238 return kDummyRSAPublicKey; |
| 239 | 239 |
| 240 uint32* r = BnNew(); | 240 uint32* r = BnNew(); |
| 241 r[kRSANumWords * 2] = 1; | 241 r[kRSANumWords * 2] = 1; |
| 242 | 242 |
| 243 uint32* rr; | 243 uint32* rr; |
| 244 BnDiv(r, n, NULL, &rr); | 244 BnDiv(r, n, NULL, &rr); |
| 245 | 245 |
| 246 for (size_t i = 0; i < kRSANumWords; ++i) { | 246 for (size_t i = 0; i < kRSANumWords; ++i) { |
| (...skipping 14 matching lines...) Expand all Loading... |
| 261 std::string AndroidRSASign(crypto::RSAPrivateKey* key, | 261 std::string AndroidRSASign(crypto::RSAPrivateKey* key, |
| 262 const std::string& body) { | 262 const std::string& body) { |
| 263 std::vector<uint8> digest(body.begin(), body.end()); | 263 std::vector<uint8> digest(body.begin(), body.end()); |
| 264 std::vector<uint8> result; | 264 std::vector<uint8> result; |
| 265 if (!crypto::SignatureCreator::Sign(key, vector_as_array(&digest), | 265 if (!crypto::SignatureCreator::Sign(key, vector_as_array(&digest), |
| 266 digest.size(), &result)) { | 266 digest.size(), &result)) { |
| 267 return std::string(); | 267 return std::string(); |
| 268 } | 268 } |
| 269 return std::string(result.begin(), result.end()); | 269 return std::string(result.begin(), result.end()); |
| 270 } | 270 } |
| OLD | NEW |