| Index: content/child/webcrypto/platform_crypto_nss.cc | 
| diff --git a/content/child/webcrypto/platform_crypto_nss.cc b/content/child/webcrypto/platform_crypto_nss.cc | 
| index dab8582753cf2329dedec349bba9e40e92c160f3..7c3c10b91dcdde04c58b13f9bdc1f00f06214ad9 100644 | 
| --- a/content/child/webcrypto/platform_crypto_nss.cc | 
| +++ b/content/child/webcrypto/platform_crypto_nss.cc | 
| @@ -531,28 +531,6 @@ CK_MECHANISM_TYPE WebCryptoAlgorithmToGenMechanism( | 
| } | 
| } | 
|  | 
| -// Converts a (big-endian) WebCrypto BigInteger, with or without leading zeros, | 
| -// to unsigned long. | 
| -bool BigIntegerToLong(const uint8* data, | 
| -                      unsigned int data_size, | 
| -                      unsigned long* result) { | 
| -  // TODO(padolph): Is it correct to say that empty data is an error, or does it | 
| -  // mean value 0? See https://www.w3.org/Bugs/Public/show_bug.cgi?id=23655 | 
| -  if (data_size == 0) | 
| -    return false; | 
| - | 
| -  *result = 0; | 
| -  for (size_t i = 0; i < data_size; ++i) { | 
| -    size_t reverse_i = data_size - i - 1; | 
| - | 
| -    if (reverse_i >= sizeof(unsigned long) && data[i]) | 
| -      return false;  // Too large for a long. | 
| - | 
| -    *result |= data[i] << 8 * reverse_i; | 
| -  } | 
| -  return true; | 
| -} | 
| - | 
| bool CreatePublicKeyAlgorithm(const blink::WebCryptoAlgorithm& algorithm, | 
| SECKEYPublicKey* key, | 
| blink::WebCryptoKeyAlgorithm* key_algorithm) { | 
| @@ -1443,7 +1421,7 @@ Status GenerateRsaKeyPair(const blink::WebCryptoAlgorithm& algorithm, | 
| blink::WebCryptoKeyUsageMask public_key_usage_mask, | 
| blink::WebCryptoKeyUsageMask private_key_usage_mask, | 
| unsigned int modulus_length_bits, | 
| -                          const CryptoData& public_exponent, | 
| +                          unsigned long public_exponent, | 
| blink::WebCryptoKey* public_key, | 
| blink::WebCryptoKey* private_key) { | 
| if (algorithm.id() == blink::WebCryptoAlgorithmIdRsaOaep && | 
| @@ -1455,17 +1433,9 @@ Status GenerateRsaKeyPair(const blink::WebCryptoAlgorithm& algorithm, | 
| if (!slot) | 
| return Status::OperationError(); | 
|  | 
| -  unsigned long public_exponent_long; | 
| -  if (!BigIntegerToLong(public_exponent.bytes(), | 
| -                        public_exponent.byte_length(), | 
| -                        &public_exponent_long) || | 
| -      !public_exponent_long) { | 
| -    return Status::ErrorGenerateKeyPublicExponent(); | 
| -  } | 
| - | 
| PK11RSAGenParams rsa_gen_params; | 
| rsa_gen_params.keySizeInBits = modulus_length_bits; | 
| -  rsa_gen_params.pe = public_exponent_long; | 
| +  rsa_gen_params.pe = public_exponent; | 
|  | 
| // Flags are verified at the Blink layer; here the flags are set to all | 
| // possible operations for the given key type. | 
|  |