)]}'
{
  "commit": "a70c75cfc0ca32a43985e3f24d737ca9cafcb910",
  "tree": "97fa841a4edd2b3a4dc831f34c0d33a704e8206c",
  "parents": [
    "1195796045e1f8bbd1ed311b2cbd8b9d87f2074a"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@chromium.org",
    "time": "Thu Sep 11 19:11:15 2014 -0400"
  },
  "committer": {
    "name": "Adam Langley",
    "email": "agl@google.com",
    "time": "Fri Sep 12 00:10:53 2014 +0000"
  },
  "message": "Add a CRYPTO_library_init and static-initializer-less build option.\n\nChromium does not like static initializers, and the CPU logic uses one to\ninitialize CPU bits. However, the crypto library lacks an explicit\ninitialization function, which could complicate (no compile-time errors)\nporting existing code which uses crypto/, but not ssl/.\n\nAdd an explicit CRYPTO_library_init function, but make it a no-op by default.\nIt only does anything (and is required) if building with\nBORINGSSL_NO_STATIC_INITIALIZER.\n\nChange-Id: I6933bdc3447fb382b1f87c788e5b8142d6f3fe39\nReviewed-on: https://boringssl-review.googlesource.com/1770\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4292781e61284ccabff17512eeeb0681074b8b19",
      "old_mode": 33188,
      "old_path": "crypto/CMakeLists.txt",
      "new_id": "5d656ecc53b06c6e8c44213939957998d04c7afa",
      "new_mode": 33188,
      "new_path": "crypto/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "0bee55fbdbb5197bd461f28c021b7d80cab6233c",
      "old_mode": 33188,
      "old_path": "crypto/base64/base64_test.c",
      "new_id": "e208e816015890dbc026980dd4283af0f5e7cfa9",
      "new_mode": 33188,
      "new_path": "crypto/base64/base64_test.c"
    },
    {
      "type": "modify",
      "old_id": "75399df5a8317583048d041cc6a2b34270c41618",
      "old_mode": 33188,
      "old_path": "crypto/bio/bio_test.c",
      "new_id": "beb38491cd78af6c5ee992f0762e1a9cd3e5f747",
      "new_mode": 33188,
      "new_path": "crypto/bio/bio_test.c"
    },
    {
      "type": "modify",
      "old_id": "d50b6b5cb5f64d1dd814f2e81bdc5fc756f1db3f",
      "old_mode": 33188,
      "old_path": "crypto/bn/bn_test.c",
      "new_id": "11b3c62eadb51a4fad6000ed17d4ac5bcf4e0822",
      "new_mode": 33188,
      "new_path": "crypto/bn/bn_test.c"
    },
    {
      "type": "modify",
      "old_id": "5ea9d485962b27da4bb81acfc4cdc26e3c9ed3f3",
      "old_mode": 33188,
      "old_path": "crypto/bytestring/bytestring_test.c",
      "new_id": "e4afccdceb2041f0036e16dfca378e2cc7d3471f",
      "new_mode": 33188,
      "new_path": "crypto/bytestring/bytestring_test.c"
    },
    {
      "type": "modify",
      "old_id": "f0f3cf4d7f85d5163eb642534a8935c941450d94",
      "old_mode": 33188,
      "old_path": "crypto/cipher/aead_test.c",
      "new_id": "ff2244c97241039a21d5a262774eafe3555217b3",
      "new_mode": 33188,
      "new_path": "crypto/cipher/aead_test.c"
    },
    {
      "type": "modify",
      "old_id": "3dadb8a42b55b08f9fad6a2c94c8a25fed0fe5a0",
      "old_mode": 33188,
      "old_path": "crypto/cipher/cipher_test.c",
      "new_id": "b91b505a1884348fd86f7ffa8e805ad2b7739dda",
      "new_mode": 33188,
      "new_path": "crypto/cipher/cipher_test.c"
    },
    {
      "type": "modify",
      "old_id": "bc3148f540bcb05d719941c0547074c08d0db900",
      "old_mode": 33188,
      "old_path": "crypto/cpu-intel.c",
      "new_id": "e2efb2c48bdbb6227ff0f42ac46ac7ced5ba7bc8",
      "new_mode": 33188,
      "new_path": "crypto/cpu-intel.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "78241daa044401404b400ba9f805c47212d4006a",
      "new_mode": 33188,
      "new_path": "crypto/crypto.c"
    },
    {
      "type": "modify",
      "old_id": "73dbba9229d49223cd2d66b16a16e356b370e063",
      "old_mode": 33188,
      "old_path": "crypto/dh/dh_test.c",
      "new_id": "31b3dd9034b57d2914decc555976eb6c1870e9cb",
      "new_mode": 33188,
      "new_path": "crypto/dh/dh_test.c"
    },
    {
      "type": "modify",
      "old_id": "8841c129e3613f017bd59bde1060cadde1c5a555",
      "old_mode": 33188,
      "old_path": "crypto/dsa/dsa_test.c",
      "new_id": "1edb7e7a53c7ab51fd8c696d8dd9fab2925308e5",
      "new_mode": 33188,
      "new_path": "crypto/dsa/dsa_test.c"
    },
    {
      "type": "modify",
      "old_id": "d65c3a1713f570f75a807c5c8fa5d63419767481",
      "old_mode": 33188,
      "old_path": "crypto/ec/example_mul.c",
      "new_id": "ebb724faf60dcd0ada6f5e7e42da4e3643ad094c",
      "new_mode": 33188,
      "new_path": "crypto/ec/example_mul.c"
    },
    {
      "type": "modify",
      "old_id": "64480e31553dd15eb1d57cf4a4c992a7c0d0c6ec",
      "old_mode": 33188,
      "old_path": "crypto/ecdsa/ecdsa_test.c",
      "new_id": "e3b11425ea8bfcd5fddac96190fddafd382bb55c",
      "new_mode": 33188,
      "new_path": "crypto/ecdsa/ecdsa_test.c"
    },
    {
      "type": "modify",
      "old_id": "14217f72ff956a8ec17301d1755246902a2402c1",
      "old_mode": 33188,
      "old_path": "crypto/err/err_test.c",
      "new_id": "230cadae3e33f496f3539425171c39bb17cf1a43",
      "new_mode": 33188,
      "new_path": "crypto/err/err_test.c"
    },
    {
      "type": "modify",
      "old_id": "9d2a2969d1896b2d40a84416a1db6d7d6fefcbcb",
      "old_mode": 33188,
      "old_path": "crypto/evp/example_sign.c",
      "new_id": "c25ef2a2a6327aea7966c4f7f34b3f9c3dea9dd5",
      "new_mode": 33188,
      "new_path": "crypto/evp/example_sign.c"
    },
    {
      "type": "modify",
      "old_id": "e2ae4a6fc9be11c4bde366ee1eec2eb62a7abe99",
      "old_mode": 33188,
      "old_path": "crypto/hmac/hmac_test.c",
      "new_id": "7b851967fafb620b4e16285d373b13adca928565",
      "new_mode": 33188,
      "new_path": "crypto/hmac/hmac_test.c"
    },
    {
      "type": "modify",
      "old_id": "65a52ed3155a0b680652a5d15425f6f346d4a15e",
      "old_mode": 33188,
      "old_path": "crypto/internal.h",
      "new_id": "ffac2d5e9641fdbdd000923021ce0e7b9cbdbb50",
      "new_mode": 33188,
      "new_path": "crypto/internal.h"
    },
    {
      "type": "modify",
      "old_id": "9a94a883631ffdf1a7be1e8fc85c3f3dd4208a00",
      "old_mode": 33188,
      "old_path": "crypto/lhash/lhash_test.c",
      "new_id": "eb40cab26bfd4eb74106d83b54426483d6a24c82",
      "new_mode": 33188,
      "new_path": "crypto/lhash/lhash_test.c"
    },
    {
      "type": "modify",
      "old_id": "eb5984c80376046af74421e68c40e062e8e84a2e",
      "old_mode": 33188,
      "old_path": "crypto/md5/md5_test.c",
      "new_id": "fd243414d618bf996d2261c87376f30117364e8d",
      "new_mode": 33188,
      "new_path": "crypto/md5/md5_test.c"
    },
    {
      "type": "modify",
      "old_id": "a112431ac4bd14bfeed4dbb867d96ab12346b1d0",
      "old_mode": 33188,
      "old_path": "crypto/modes/gcm_test.c",
      "new_id": "5308976e417d4dba3988073b8a9b7aa2e1e0a5ae",
      "new_mode": 33188,
      "new_path": "crypto/modes/gcm_test.c"
    },
    {
      "type": "modify",
      "old_id": "39ed8400be5f379c2118cdc01f1ef2e19af82601",
      "old_mode": 33188,
      "old_path": "crypto/pkcs8/pkcs12_test.c",
      "new_id": "6aea1ebc3a9b5856d0bfa21cad4deafd5b12e002",
      "new_mode": 33188,
      "new_path": "crypto/pkcs8/pkcs12_test.c"
    },
    {
      "type": "modify",
      "old_id": "897bb610e8e7464d37bd2408a5cb451ce0cf04cd",
      "old_mode": 33188,
      "old_path": "crypto/rsa/rsa_test.c",
      "new_id": "a5bc3662603afdc31c8042feb638c76a924a5cbd",
      "new_mode": 33188,
      "new_path": "crypto/rsa/rsa_test.c"
    },
    {
      "type": "modify",
      "old_id": "a0df062b068211ead0bdf97d2c89686bd1152bcc",
      "old_mode": 33188,
      "old_path": "crypto/sha/sha1_test.c",
      "new_id": "d723e4074335c237425343237141a50f1a8b336e",
      "new_mode": 33188,
      "new_path": "crypto/sha/sha1_test.c"
    },
    {
      "type": "modify",
      "old_id": "9d8adceaa61ed981e4d9239f5b0fe22a32355e53",
      "old_mode": 33188,
      "old_path": "crypto/x509/pkcs7_test.c",
      "new_id": "2e20c40b16b9fcf03f43a69bcdb7402ba0bc8168",
      "new_mode": 33188,
      "new_path": "crypto/x509/pkcs7_test.c"
    },
    {
      "type": "modify",
      "old_id": "06a692e39fffec2ea101b2f2fcdb307083734e91",
      "old_mode": 33188,
      "old_path": "crypto/x509v3/tabtest.c",
      "new_id": "f78393883befdbfa8664b1c547d3dc274848e607",
      "new_mode": 33188,
      "new_path": "crypto/x509v3/tabtest.c"
    },
    {
      "type": "modify",
      "old_id": "326b1f9322f5ad844fd5c78fd463d8f97dbd07aa",
      "old_mode": 33188,
      "old_path": "crypto/x509v3/v3nametest.c",
      "new_id": "6a2ea859ed13281dbfdda46e49e8e1cecd3807e5",
      "new_mode": 33188,
      "new_path": "crypto/x509v3/v3nametest.c"
    },
    {
      "type": "modify",
      "old_id": "ddb97be96255b6d115002a393f8d5f59e3f4d058",
      "old_mode": 33188,
      "old_path": "include/openssl/crypto.h",
      "new_id": "112431e1089eb64c49dd5d2bbfbb4179425e86a0",
      "new_mode": 33188,
      "new_path": "include/openssl/crypto.h"
    },
    {
      "type": "modify",
      "old_id": "60493505fc1ca153114cf28f7374ff903b4b0f51",
      "old_mode": 33188,
      "old_path": "ssl/pqueue/CMakeLists.txt",
      "new_id": "b7166b40e089dfbe7248d68a2305d52d39c2988e",
      "new_mode": 33188,
      "new_path": "ssl/pqueue/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "112afedf5b1e3ebae8c590469bbecf4d509f9042",
      "old_mode": 33188,
      "old_path": "ssl/pqueue/pqueue_test.c",
      "new_id": "16a9ad87c804ef7955add9baa2db96179ba20d59",
      "new_mode": 33188,
      "new_path": "ssl/pqueue/pqueue_test.c"
    },
    {
      "type": "modify",
      "old_id": "8f7ede69b4b72e8328422961bfb3b83f3896a15b",
      "old_mode": 33188,
      "old_path": "ssl/ssl_algs.c",
      "new_id": "9308d40e3bb5d6d89e79c3f4455054f846bea757",
      "new_mode": 33188,
      "new_path": "ssl/ssl_algs.c"
    }
  ]
}
