)]}'
{
  "commit": "efeeee38c9aa30d2bdcb9d150c6e76ada01c5145",
  "tree": "1435f295800887bd0d313b65b97ff404edaa55b3",
  "parents": [
    "bfa016150b886b76cc1a4050ee8b6e98d0e0e9ba"
  ],
  "author": {
    "name": "Vlad Krasnov",
    "email": "vlad@cloudflare.com",
    "time": "Thu May 28 13:50:23 2015 -0700"
  },
  "committer": {
    "name": "Adam Langley",
    "email": "agl@golang.org",
    "time": "Sat Aug 29 21:02:38 2015 +0000"
  },
  "message": "crypto/aes: dedicated asm version of AES-GCM\n\nThe existing implementation didn\u0027t use the CLMUL instructions for fast\nand constant time binary-field multiplication. With this change, amd64\nCPUs that support both AES and CLMUL instructions will use an optimised\nasm implementation.\n\nbenchmark                 old ns/op     new ns/op     delta\nBenchmarkAESGCMSeal8K     91723         3200          -96.51%\nBenchmarkAESGCMOpen8K     91487         3324          -96.37%\nBenchmarkAESGCMSeal1K     11873         546           -95.40%\nBenchmarkAESGCMOpen1K     11833         594           -94.98%\n\nbenchmark                 old MB/s     new MB/s     speedup\nBenchmarkAESGCMSeal8K     89.31        2559.62      28.66x\nBenchmarkAESGCMOpen8K     89.54        2463.78      27.52x\nBenchmarkAESGCMSeal1K     86.24        1872.49      21.71x\nBenchmarkAESGCMOpen1K     86.53        1721.78      19.90x\n\nChange-Id: Idd63233098356d8b353d16624747b74d0c3f193e\nReviewed-on: https://go-review.googlesource.com/10484\nTryBot-Result: Gobot Gobot \u003cgobot@golang.org\u003e\nReviewed-by: Adam Langley \u003cagl@golang.org\u003e\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fbb17d82c9c9eb892eee18f1f6a34517036b6e25",
      "new_mode": 33188,
      "new_path": "src/crypto/aes/aes_gcm.go"
    },
    {
      "type": "modify",
      "old_id": "2c6bb0a89c7b753359f862081c0f858879b7c99b",
      "old_mode": 33188,
      "old_path": "src/crypto/aes/cipher.go",
      "new_id": "04d2be1283fb8566199d68d616446d67205283c0",
      "new_mode": 33188,
      "new_path": "src/crypto/aes/cipher.go"
    },
    {
      "type": "modify",
      "old_id": "1714e0f1e5cbdba4d890998e9f0f6bc9388ac5fe",
      "old_mode": 33188,
      "old_path": "src/crypto/aes/cipher_generic.go",
      "new_id": "32b2b3cc56d67b54a6cbcaf30aaaf1615e6af319",
      "new_mode": 33188,
      "new_path": "src/crypto/aes/cipher_generic.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f60c92d6ea5aaefdd2aea1be5563b756a65f224e",
      "new_mode": 33188,
      "new_path": "src/crypto/aes/gcm_amd64.s"
    },
    {
      "type": "modify",
      "old_id": "027b24851055080af962b010609e510d7c7c8b36",
      "old_mode": 33188,
      "old_path": "src/crypto/cipher/benchmark_test.go",
      "new_id": "93c40d0f4665fe50688fcb8dc07b7476a794da71",
      "new_mode": 33188,
      "new_path": "src/crypto/cipher/benchmark_test.go"
    },
    {
      "type": "modify",
      "old_id": "bbdf9f5d3df7eb9da5a97c0330f55b2486de8c1e",
      "old_mode": 33188,
      "old_path": "src/crypto/cipher/gcm.go",
      "new_id": "3a0474f502436ed10700efaeda7e3e62bbfcb5ab",
      "new_mode": 33188,
      "new_path": "src/crypto/cipher/gcm.go"
    },
    {
      "type": "modify",
      "old_id": "81b9aa241912f76fc93d7d9194f5466c4acadfb2",
      "old_mode": 33188,
      "old_path": "src/crypto/cipher/gcm_test.go",
      "new_id": "904091ed5d070472dc2ae1f7f2a5bc4c8b976619",
      "new_mode": 33188,
      "new_path": "src/crypto/cipher/gcm_test.go"
    }
  ]
}
