)]}'
{
  "commit": "9377d95a8b5fc74e4b276db43a11122dcc0d2497",
  "tree": "5cac811a8be490a53fd5f04999d67ca11b3b0a4a",
  "parents": [
    "12fe1b25ead258858309d22ffa9e1f9a316358d7"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@chromium.org",
    "time": "Tue Sep 15 16:47:35 2015 -0400"
  },
  "committer": {
    "name": "David Benjamin",
    "email": "davidben@chromium.org",
    "time": "Mon Sep 21 16:21:34 2015 -0400"
  },
  "message": "Work around broken Estonian smart cards. Again.\n\nEstonian IDs issued between September 2014 to September 2015 are broken and use\nnegative moduli. They last five years and are common enough that we need to\nwork around this bug.\n\nAdd parallel \"buggy\" versions of BN_cbs2unsigned and RSA_parse_public_key which\ntolerate this mistake, to align with OpenSSL\u0027s previous behavior. This code is\ncurrently hooked up to rsa_pub_decode in RSA_ASN1_METHOD so that d2i_X509 is\ntolerant. (This isn\u0027t a huge deal as the rest of that stack still uses the\nlegacy ASN.1 code which is overly lenient in many other ways.)\n\nIn future, when Chromium isn\u0027t using crypto/x509 and has more unified\ncertificate handling code, we can put client certificates under a slightly\ndifferent codepath, so this needn\u0027t hold for all certificates forever. Then in\nSeptember 2019, when the broken Estonian certificates all expire, we can purge\nthis codepath altogether.\n\nBUG\u003d532048\n\nChange-Id: Iadb245048c71dba2eec45dd066c4a6e077140751\nReviewed-on: https://boringssl-review.googlesource.com/5894\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\n(cherry picked from commit 231cb8214511ea5784dd94a59f3e5f5fb7d39f8e)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5c47a06162f6cc9c7ce56182aea714bdaa0c8478",
      "old_mode": 33188,
      "old_path": "crypto/bn/bn_asn1.c",
      "new_id": "a148afcb0bca88bfaecbcb563043b99d9aea150b",
      "new_mode": 33188,
      "new_path": "crypto/bn/bn_asn1.c"
    },
    {
      "type": "modify",
      "old_id": "74299c555fe920a4345442ca0fc65b0931235462",
      "old_mode": 33188,
      "old_path": "crypto/bn/bn_test.cc",
      "new_id": "0e52119e6562d5255e47c4f95808c370daa254b3",
      "new_mode": 33188,
      "new_path": "crypto/bn/bn_test.cc"
    },
    {
      "type": "modify",
      "old_id": "544ff1b8842b6802b350b62feb8edb21132066fd",
      "old_mode": 33188,
      "old_path": "crypto/evp/p_rsa_asn1.c",
      "new_id": "94a967a828a3b70b7a8d81009ff432fd038496e1",
      "new_mode": 33188,
      "new_path": "crypto/evp/p_rsa_asn1.c"
    },
    {
      "type": "modify",
      "old_id": "c62bcf08f6b58af859e075d543575e6ea60f74e2",
      "old_mode": 33188,
      "old_path": "crypto/rsa/rsa_asn1.c",
      "new_id": "3f20acb54c22f6a5fded6ed356bcf788a0ce34a7",
      "new_mode": 33188,
      "new_path": "crypto/rsa/rsa_asn1.c"
    },
    {
      "type": "modify",
      "old_id": "9d44e2c83eb82dfc6e9947857762abfc42b7d18b",
      "old_mode": 33188,
      "old_path": "crypto/rsa/rsa_test.cc",
      "new_id": "d52b78b40cd1bad1eeebf764c5fe5ca645a9a2fe",
      "new_mode": 33188,
      "new_path": "crypto/rsa/rsa_test.cc"
    },
    {
      "type": "modify",
      "old_id": "7edb77845736e02573a2550422558bf8fcd2b210",
      "old_mode": 33188,
      "old_path": "include/openssl/bn.h",
      "new_id": "deacee093af53a4bb0ded2ae051f753429b77fee",
      "new_mode": 33188,
      "new_path": "include/openssl/bn.h"
    },
    {
      "type": "modify",
      "old_id": "0d87f2789156e664259aa1cbf0e487b7366fbf30",
      "old_mode": 33188,
      "old_path": "include/openssl/rsa.h",
      "new_id": "e4ec8f23be43526ac962bc3c62a32fb81f5ebe02",
      "new_mode": 33188,
      "new_path": "include/openssl/rsa.h"
    }
  ]
}
