)]}'
{
  "commit": "68772b31b07827793827e45ea81e8035269774c1",
  "tree": "f9f661c29a375dfd4586e847b2a5ece92733de5f",
  "parents": [
    "2dc469e06655be3a761ee25b1d89b4f6ebfc29a4"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@chromium.org",
    "time": "Wed Dec 30 21:40:40 2015 -0500"
  },
  "committer": {
    "name": "Adam Langley",
    "email": "agl@google.com",
    "time": "Wed Feb 17 16:28:07 2016 +0000"
  },
  "message": "Implement new SPKI parsers.\n\nMany consumers need SPKI support (X.509, TLS, QUIC, WebCrypto), each\nwith different ways to set signature parameters. SPKIs themselves can\nget complex with id-RSASSA-PSS keys which come with various constraints\nin the key parameters. This suggests we want a common in-library\nrepresentation of an SPKI.\n\nThis adds two new functions EVP_parse_public_key and\nEVP_marshal_public_key which converts EVP_PKEY to and from SPKI and\nimplements X509_PUBKEY functions with them. EVP_PKEY seems to have been\nintended to be able to express the supported SPKI types with\nfull-fidelity, so these APIs will continue this.\n\nThis means future support for id-RSASSA-PSS would *not* repurpose\nEVP_PKEY_RSA. I\u0027m worried about code assuming EVP_PKEY_RSA implies\nacting on the RSA* is legal. Instead, it\u0027d add an EVP_PKEY_RSA_PSS and\nthe data pointer would be some (exposed, so the caller may still check\nkey size, etc.) RSA_PSS_KEY struct. Internally, the EVP_PKEY_CTX\nimplementation would enforce the key constraints. If RSA_PSS_KEY would\nlater need its own API, that code would move there, but that seems\nunlikely.\n\nIdeally we\u0027d have a 1:1 correspondence with key OID, although we may\nhave to fudge things if mistakes happen in standardization. (Whether or\nnot X.509 reuses id-ecPublicKey for Ed25519, we\u0027ll give it a separate\nEVP_PKEY type.)\n\nDSA parsing hooks are still implemented, missing parameters and all for\nnow. This isn\u0027t any worse than before.\n\nDecoupling from the giant crypto/obj OID table will be a later task.\n\nBUG\u003d522228\n\nChange-Id: I0e3964edf20cb795a18b0991d17e5ca8bce3e28c\nReviewed-on: https://boringssl-review.googlesource.com/6861\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8f8dd4838547f8ff1d686b23185334b5f82ffef2",
      "old_mode": 33188,
      "old_path": "crypto/err/evp.errordata",
      "new_id": "cfb81b159b3dc40aff05f8b266b39a61cb0a36c9",
      "new_mode": 33188,
      "new_path": "crypto/err/evp.errordata"
    },
    {
      "type": "modify",
      "old_id": "da25b99addb9d5d585d010a2e8f7d3cfc60d702c",
      "old_mode": 33188,
      "old_path": "crypto/evp/evp_asn1.c",
      "new_id": "e90bed5fafc320c597cef4c96fd8ded180ba1da5",
      "new_mode": 33188,
      "new_path": "crypto/evp/evp_asn1.c"
    },
    {
      "type": "modify",
      "old_id": "839065463a242c1c999c568f7e6feed829c30473",
      "old_mode": 33188,
      "old_path": "crypto/evp/evp_test.cc",
      "new_id": "4e7b56e390c5e9da52b3f28d59c2918b8e18ae25",
      "new_mode": 33188,
      "new_path": "crypto/evp/evp_test.cc"
    },
    {
      "type": "modify",
      "old_id": "97ddaa0e663657b95186b8d4d1512180858f37be",
      "old_mode": 33188,
      "old_path": "crypto/evp/evp_tests.txt",
      "new_id": "2320125e9d983c4932ddda3fb1e6bf07e7a7e078",
      "new_mode": 33188,
      "new_path": "crypto/evp/evp_tests.txt"
    },
    {
      "type": "modify",
      "old_id": "67b2a659a0ff68051b960eae6507cf739697be43",
      "old_mode": 33188,
      "old_path": "crypto/evp/internal.h",
      "new_id": "f2bad30ab705dde95c12d70aad14b9187f9126a9",
      "new_mode": 33188,
      "new_path": "crypto/evp/internal.h"
    },
    {
      "type": "modify",
      "old_id": "9f97b1639a57dc3e618d6a89466ce38ab44b7891",
      "old_mode": 33188,
      "old_path": "crypto/evp/p_dsa_asn1.c",
      "new_id": "62f2ac8982d48aec9d45e67d8d1f316c09554a97",
      "new_mode": 33188,
      "new_path": "crypto/evp/p_dsa_asn1.c"
    },
    {
      "type": "modify",
      "old_id": "e093c1830bf00daf13431278d3728799269a87af",
      "old_mode": 33188,
      "old_path": "crypto/evp/p_ec_asn1.c",
      "new_id": "2d8d38a25d1768d725f26ee643566846490681f6",
      "new_mode": 33188,
      "new_path": "crypto/evp/p_ec_asn1.c"
    },
    {
      "type": "modify",
      "old_id": "70f0b763fce5bccdd98a795c9d8a4be6d06529f6",
      "old_mode": 33188,
      "old_path": "crypto/evp/p_rsa_asn1.c",
      "new_id": "83da7df4be9987f94a6e3dd33edc9974dcf6e688",
      "new_mode": 33188,
      "new_path": "crypto/evp/p_rsa_asn1.c"
    },
    {
      "type": "modify",
      "old_id": "8fb7ed22bb1585afe8d135d07a2afba146793c1f",
      "old_mode": 33188,
      "old_path": "crypto/test/file_test.h",
      "new_id": "501375bc466d265708befd631020a0273b8907a0",
      "new_mode": 33188,
      "new_path": "crypto/test/file_test.h"
    },
    {
      "type": "modify",
      "old_id": "e8732a116a106caee097b42c952a7ec3b096a92c",
      "old_mode": 33188,
      "old_path": "crypto/x509/x_pubkey.c",
      "new_id": "47f256c760a8b368ff7830164834aa90187ca922",
      "new_mode": 33188,
      "new_path": "crypto/x509/x_pubkey.c"
    },
    {
      "type": "modify",
      "old_id": "4f9426fd4cad7de52230033c297736c1784801f2",
      "old_mode": 33188,
      "old_path": "include/openssl/evp.h",
      "new_id": "ec143e23604727e6d21e1ef5a8fa3f3e70d75044",
      "new_mode": 33188,
      "new_path": "include/openssl/evp.h"
    }
  ]
}
