)]}'
{
  "log": [
    {
      "commit": "4520c6a49af833c83de6c74525ce8e07bbe6d783",
      "tree": "66b6b43e95cf270e00aa5cb308a12534f33216d9",
      "parents": [
        "4f73175d0375a7c1b3ae625e76acee8b39741f28"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Sep 21 23:31:13 2012 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 08 13:50:19 2012 +1030"
      },
      "message": "X.509: Add simple ASN.1 grammar compiler\n\nAdd a simple ASN.1 grammar compiler.  This produces a bytecode output that can\nbe fed to a decoder to inform the decoder how to interpret the ASN.1 stream it\nis trying to parse.\n\nAction functions can be specified in the grammar by interpolating:\n\n\t({ foo })\n\nafter a type, for example:\n\n\tSubjectPublicKeyInfo ::\u003d SEQUENCE {\n\t\talgorithm\t\tAlgorithmIdentifier,\n\t\tsubjectPublicKey\tBIT STRING ({ do_key_data })\n\t\t}\n\nThe decoder is expected to call these after matching this type and parsing the\ncontents if it is a constructed type.\n\nThe grammar compiler does not currently support the SET type (though it does\nsupport SET OF) as I can\u0027t see a good way of tracking which members have been\nencountered yet without using up extra stack space.\n\nCurrently, the grammar compiler will fail if more than 256 bytes of bytecode\nwould be produced or more than 256 actions have been specified as it uses\n8-bit jump values and action indices to keep space usage down.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    }
  ]
}
