)]}'
{
  "commit": "e9224c717711eefb30038c9b37c69795dda93c9a",
  "tree": "cdb7a95f6ef21a6434008c494c38d530b629def0",
  "parents": [
    "e90e7197398ce87786e92468e946d50f3c6728b7"
  ],
  "author": {
    "name": "Geoff Thorpe",
    "email": "geoff@openssl.org",
    "time": "Sun Dec 08 05:24:31 2002 +0000"
  },
  "committer": {
    "name": "Geoff Thorpe",
    "email": "geoff@openssl.org",
    "time": "Sun Dec 08 05:24:31 2002 +0000"
  },
  "message": "This is a first-cut at improving the callback mechanisms used in\nkey-generation and prime-checking functions. Rather than explicitly passing\ncallback functions and caller-defined context data for the callbacks, a new\nstructure BN_GENCB is defined that encapsulates this; a pointer to the\nstructure is passed to all such functions instead.\n\nThis wrapper structure allows the encapsulation of \"old\" and \"new\" style\ncallbacks - \"new\" callbacks return a boolean result on the understanding\nthat returning FALSE should terminate keygen/primality processing.  The\nBN_GENCB abstraction will allow future callback modifications without\nneeding to break binary compatibility nor change the API function\nprototypes. The new API functions have been given names ending in \"_ex\" and\nthe old functions are implemented as wrappers to the new ones.  The\nOPENSSL_NO_DEPRECATED symbol has been introduced so that, if defined,\ndeclaration of the older functions will be skipped. NB: Some\nopenssl-internal code will stick with the older callbacks for now, so\nappropriate \"#undef\" logic will be put in place - this is in case the user\nis *building* openssl (rather than *including* its headers) with this\nsymbol defined.\n\nThere is another change in the new _ex functions; the key-generation\nfunctions do not return key structures but operate on structures passed by\nthe caller, the return value is a boolean. This will allow for a smoother\ntransition to having key-generation as \"virtual function\" in the various\n***_METHOD tables.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8d47c0e171a726dc3f71902edb091b76513dd76a",
      "old_mode": 33188,
      "old_path": "CHANGES",
      "new_id": "f0fd7ac86159f1cb208987ef64f3ce8c43479333",
      "new_mode": 33188,
      "new_path": "CHANGES"
    },
    {
      "type": "modify",
      "old_id": "d0b64585ed3a68ad6bc6641b308d07e2602adcd1",
      "old_mode": 33188,
      "old_path": "crypto/bn/Makefile.ssl",
      "new_id": "459a0693ed961e399a9248a8e4016d024bd27f7f",
      "new_mode": 33188,
      "new_path": "crypto/bn/Makefile.ssl"
    },
    {
      "type": "modify",
      "old_id": "403add94b03852dea86545584f7a7f2d39151164",
      "old_mode": 33188,
      "old_path": "crypto/bn/bn.h",
      "new_id": "c1b5b41935852ca98bf650c2a5c48acab364ca47",
      "new_mode": 33188,
      "new_path": "crypto/bn/bn.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "76c349833c7634b5fd1e2d0bd7520284d9cb854a",
      "new_mode": 33188,
      "new_path": "crypto/bn/bn_depr.c"
    },
    {
      "type": "modify",
      "old_id": "918b9237c6e2a855cd40dfb6cb7af71f7dbc54c8",
      "old_mode": 33188,
      "old_path": "crypto/bn/bn_prime.c",
      "new_id": "a9ec01d9160b90739028d358908e21135f2d2e56",
      "new_mode": 33188,
      "new_path": "crypto/bn/bn_prime.c"
    },
    {
      "type": "modify",
      "old_id": "d87ccf9c6a89fe0c34d4570a9a5d6710947a1733",
      "old_mode": 33188,
      "old_path": "crypto/bn/bntest.c",
      "new_id": "0149e8c3c4dd2ec865f8a21b512d227c9288c297",
      "new_mode": 33188,
      "new_path": "crypto/bn/bntest.c"
    },
    {
      "type": "modify",
      "old_id": "e1cb248db56e4c033312171418c169e6cb295320",
      "old_mode": 33188,
      "old_path": "crypto/dh/Makefile.ssl",
      "new_id": "c1ed5ad92037691901e791e0510b7dceffed2356",
      "new_mode": 33188,
      "new_path": "crypto/dh/Makefile.ssl"
    },
    {
      "type": "modify",
      "old_id": "05851f84294c3bc53b68793ed69f0c18aacfa80c",
      "old_mode": 33188,
      "old_path": "crypto/dh/dh.h",
      "new_id": "cab9b1493dc971a5992331c16cf3b35a48724f80",
      "new_mode": 33188,
      "new_path": "crypto/dh/dh.h"
    },
    {
      "type": "modify",
      "old_id": "f0373f7d6878a01ba12720a4f5068c888770eaad",
      "old_mode": 33188,
      "old_path": "crypto/dh/dh_check.c",
      "new_id": "bfc9c3ad7685eaee12ccc66c88ce8fe3aef1c3eb",
      "new_mode": 33188,
      "new_path": "crypto/dh/dh_check.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8a909b1959bab8aaf54981247fc8d369b0c1a931",
      "new_mode": 33188,
      "new_path": "crypto/dh/dh_depr.c"
    },
    {
      "type": "modify",
      "old_id": "06f78b35ab71ced8d0f788325ecef8ea3063c9d7",
      "old_mode": 33188,
      "old_path": "crypto/dh/dh_gen.c",
      "new_id": "a929a0f0648000ab0e80d7ad444b9842ce113260",
      "new_mode": 33188,
      "new_path": "crypto/dh/dh_gen.c"
    },
    {
      "type": "modify",
      "old_id": "27237741da06d037e9377336f06e52366de51b5a",
      "old_mode": 33188,
      "old_path": "crypto/dh/dhtest.c",
      "new_id": "33a49f2d7d1100ce9d7f415654557b0d5fbae0a8",
      "new_mode": 33188,
      "new_path": "crypto/dh/dhtest.c"
    },
    {
      "type": "modify",
      "old_id": "306a3f200127fb9e18d934f456d5de77d4877324",
      "old_mode": 33188,
      "old_path": "crypto/dsa/Makefile.ssl",
      "new_id": "93808285f7228d375c28c5696935927c53e07e6b",
      "new_mode": 33188,
      "new_path": "crypto/dsa/Makefile.ssl"
    },
    {
      "type": "modify",
      "old_id": "9b3baadf2c49c95213dfe0cad1b4a25f9e5f0ccb",
      "old_mode": 33188,
      "old_path": "crypto/dsa/dsa.h",
      "new_id": "7a126e486b6fa6f6f45b021df937fd849665a594",
      "new_mode": 33188,
      "new_path": "crypto/dsa/dsa.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c16315389b39f01c1fe3298cdb2416bbc525171f",
      "new_mode": 33188,
      "new_path": "crypto/dsa/dsa_depr.c"
    },
    {
      "type": "modify",
      "old_id": "dc9c249310335a12196ef69632142c98fa560cf2",
      "old_mode": 33188,
      "old_path": "crypto/dsa/dsa_gen.c",
      "new_id": "ca2c8670897079e526a9029eef97acb00d575995",
      "new_mode": 33188,
      "new_path": "crypto/dsa/dsa_gen.c"
    },
    {
      "type": "modify",
      "old_id": "1ab90cfd7e493c23bbe3d3d395177a323e24db67",
      "old_mode": 33188,
      "old_path": "crypto/dsa/dsatest.c",
      "new_id": "c341c1b49ced1700d15b56add062d6ec2d92bd39",
      "new_mode": 33188,
      "new_path": "crypto/dsa/dsatest.c"
    },
    {
      "type": "modify",
      "old_id": "d7e606db715e6bbc31cdb1f315191250f7a784fd",
      "old_mode": 33188,
      "old_path": "crypto/ec/ectest.c",
      "new_id": "e292da33845662ca57fc20e0dcee50a9c6d75d0e",
      "new_mode": 33188,
      "new_path": "crypto/ec/ectest.c"
    },
    {
      "type": "modify",
      "old_id": "3f284125a2be5b2e52df9f6475a89f42376e116c",
      "old_mode": 33188,
      "old_path": "crypto/ecdsa/ecdsatest.c",
      "new_id": "402e988f46cab332ec99606b5625014e07c141e8",
      "new_mode": 33188,
      "new_path": "crypto/ecdsa/ecdsatest.c"
    },
    {
      "type": "modify",
      "old_id": "7e4c6db9861c7c3db4e831596c522f7511ddd8a8",
      "old_mode": 33188,
      "old_path": "crypto/rsa/Makefile.ssl",
      "new_id": "eeb0c9115c150f9f67896575e9f68ec98e904651",
      "new_mode": 33188,
      "new_path": "crypto/rsa/Makefile.ssl"
    },
    {
      "type": "modify",
      "old_id": "b2e25e4e7c714a73449f437a107a002ab983c941",
      "old_mode": 33188,
      "old_path": "crypto/rsa/rsa.h",
      "new_id": "cdf514c00945e1a6530654b97909ff705665acee",
      "new_mode": 33188,
      "new_path": "crypto/rsa/rsa.h"
    },
    {
      "type": "modify",
      "old_id": "002f2cb487222acc92226e21018af434c713fab4",
      "old_mode": 33188,
      "old_path": "crypto/rsa/rsa_chk.c",
      "new_id": "9d848db8c6c783f8718d86a0b86bbae2bb3f967d",
      "new_mode": 33188,
      "new_path": "crypto/rsa/rsa_chk.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "25fa9543936fba84a8db8bdb75ab04386582e6d1",
      "new_mode": 33188,
      "new_path": "crypto/rsa/rsa_depr.c"
    },
    {
      "type": "modify",
      "old_id": "00c25adbc588485e022a9a0b1608ca0b6ce16ba2",
      "old_mode": 33188,
      "old_path": "crypto/rsa/rsa_gen.c",
      "new_id": "a45b9aab5c3c169225119d63e564fbec2d0d0b80",
      "new_mode": 33188,
      "new_path": "crypto/rsa/rsa_gen.c"
    },
    {
      "type": "modify",
      "old_id": "8ff076250f27970b1f3e4bbddbb53d8ca47fdc12",
      "old_mode": 33188,
      "old_path": "ssl/ssltest.c",
      "new_id": "e384599fb17b35b71e91497529f7dfc621b29b1b",
      "new_mode": 33188,
      "new_path": "ssl/ssltest.c"
    }
  ]
}
