)]}'
{
  "log": [
    {
      "commit": "7262d602d802c4a3840097d5de217fcfb9728b49",
      "tree": "ce9ff351710666b1e063cae898fca1b618323cef",
      "parents": [
        "089c9439674e8ecbc64f0ba924e6fb447bbc2b9d"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Mar 04 17:14:02 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Mar 04 17:14:02 2021 +0100"
      },
      "message": "common: Rename w32-misc.c to w32-cmdline.c\n\n* common/w32-misc.c: Rename to ....\n* common/w32-cmdline.c: this.\n* common/Makefile.am: Adjust.\n--\n"
    },
    {
      "commit": "089c9439674e8ecbc64f0ba924e6fb447bbc2b9d",
      "tree": "6c72cea63c4a70ca614664c40ccaadb76d161bba",
      "parents": [
        "20c60076866904187a09393de596deef286116f8"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Mar 04 16:52:03 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Mar 04 16:59:21 2021 +0100"
      },
      "message": "common,w32: Implement globing of command line args.\n\n* common/w32-misc.c [W32]: Include windows.h\n(struct add_arg_s): New.\n(add_arg): New.\n(glob_arg): New.\n(parse_cmdstring): Add arg argvflags and set it.\n(w32_parse_commandline): Add arg r_itemsalloced.  Add globing.\n\n* common/init.c (prepare_w32_commandline): Mark glob created items as\nleaked.\n\n* common/t-w32-cmdline.c : Include windows.h\n(test_all): Add simple glob test for Unix.\n(main): Add manual test mode for Windows.\n\n--\n\nGnuPG-bug-id: 4398\n"
    },
    {
      "commit": "20c60076866904187a09393de596deef286116f8",
      "tree": "5a6e18c7db6ccfcdf7365014ccaba810075c6230",
      "parents": [
        "8e15506d6680bbee85bc01453da28fc90b4cb673"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Mar 04 12:30:30 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Mar 04 12:49:03 2021 +0100"
      },
      "message": "common,w32: Refine the command line parsing for \\ in quotes.\n\n* common/t-w32-cmdline.c (test_all): Add new test cases.\n* common/w32-misc.c (strip_one_arg): Add arg endquote.\n(parse_cmdstring): Take care of backslashes in quotes.\n--\n\nI found some new test vectors from Microsoft.\n"
    },
    {
      "commit": "8e15506d6680bbee85bc01453da28fc90b4cb673",
      "tree": "e0dd3a0b8928471005bfee107dd59212b7ebc131",
      "parents": [
        "deb6c94362c0f179de1cac18707aad2f51a21e10"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Mar 04 10:43:46 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Mar 04 10:43:46 2021 +0100"
      },
      "message": "gpg: Prepare for globing with UTF-8.\n\n* g10/gpg.c (_dowildcard): Remove.\n(my_strusage): Enable wildcards using our new system.\n--\n\nThis patch actually removes the current globing using a mingw\nfeature.  We are not able to use this because it does not handle\nUnicode filenames.  The plan is to implement this in init.c.  This\npatch merely configures gpg to request globing.\n\nGnuPG-bug-id: 4398\n"
    },
    {
      "commit": "deb6c94362c0f179de1cac18707aad2f51a21e10",
      "tree": "dec21d341c77aaa92fdf0ecf8c36a789aad3746c",
      "parents": [
        "be2da244565822ad1f268f84dc88a23e5aa8d26a"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Mar 04 10:16:48 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Mar 04 10:22:14 2021 +0100"
      },
      "message": "common: First take on handling Unicode command line args.\n\n* common/w32-misc.c: New.\n* common/t-w32-cmdline.c: New.\n* common/init.c: Include w32help.h.\n(prepare_w32_commandline): New.\n(_init_common_subsystems) [W32]: Call prepare_w32_commandline.\n\n* common/Makefile.am (common_sources) [W32]: Add w32-misc.c\n(module_tests): Add t-w32-cmdline\n(t_w32_cmdline_LDADD): New.\n--\n\nThe rules for the command line parser are not cleary specified - if at\nall.  See the comment in t-w32-cmdline.c.\n\nWe can\u0027t use the mingw version because that would require to change\nall argv handling to be wchar_t and that only for Windows.  That would\nbe too ugly.  Parsing the command line into argv by us is much easier\nand we can do that only if needed - i.e. if globing is required (we\nare prepared for this) or a non-ASCII character has been encountered.\nThis way we keep things stable and only fix the currently not working\nUnicode problem.\n\nGnuPG-bug-id: 4398\n"
    },
    {
      "commit": "be2da244565822ad1f268f84dc88a23e5aa8d26a",
      "tree": "ef33f2f35112039a1c9d0d5bc2fe97c9f3f07eab",
      "parents": [
        "5ed1567e7c6b08988a134effb3c1f42ef6d5319a"
      ],
      "author": {
        "name": "Nicolas Fella via Gnupg-devel",
        "email": "gnupg-devel@gnupg.org",
        "time": "Sun Feb 28 14:34:10 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Mon Mar 01 09:43:26 2021 +0100"
      },
      "message": "gpg: Keep temp files when opening images via xdg-open\n\n* g10/photoid.c (get_default_photo_command): Change parameter for\nxdg-open.\n--\n\nxdg-open spawns the user\u0027s preferred image viewer and then exits.\nTherefore we must not remove the temp file when it exits,\notherwise by the time the actual image viewer is started the file\ndoesn\u0027t exist any more.\n\nSigned-off-by: Nicolas Fella \u003cnicolas.fella@gmx.de\u003e\n"
    },
    {
      "commit": "5ed1567e7c6b08988a134effb3c1f42ef6d5319a",
      "tree": "c67089e9ec32af5c4f2ccc973bcb908cd860f5df",
      "parents": [
        "f5897b3d244889435c3612fffc482cee03652b25"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Fri Feb 26 14:46:37 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Fri Feb 26 14:53:48 2021 +0100"
      },
      "message": "po: Make agent/commands.c translatable and update German translation.\n\n--\n\nGnuPG-bug-id: 4777\n\nThis also fixes a bad fuzzy translation which accidently had been\ncommited without realizing that there was indeed a change (from\n\"... GnuPG\" to \"... %s\").\n"
    },
    {
      "commit": "f5897b3d244889435c3612fffc482cee03652b25",
      "tree": "b46ea67db5ad76f7f78d55ac9deb44fc8800fb08",
      "parents": [
        "e54cd36bbb79fa0d5b710d14cf139745e29a25a7"
      ],
      "author": {
        "name": "bobwxc",
        "email": "bobwxc@yeah.net",
        "time": "Fri Feb 26 12:00:12 2021 +0900"
      },
      "committer": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Fri Feb 26 12:00:12 2021 +0900"
      },
      "message": "po: Update Simplified Chinese Translation.\n\n--\n\nSigned-off-by: bobwxc \u003cbobwxc@yeah.net\u003e\n"
    },
    {
      "commit": "e54cd36bbb79fa0d5b710d14cf139745e29a25a7",
      "tree": "fb941f2915e8ad531b36bc817366a4bf01da4cf8",
      "parents": [
        "c032066d6b6069b88f1a65f132594d5a1aa23647"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Feb 25 17:03:35 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Feb 25 17:03:35 2021 +0100"
      },
      "message": "doc: Typo fixes for dirmngr.texi\n\n--\n"
    },
    {
      "commit": "c032066d6b6069b88f1a65f132594d5a1aa23647",
      "tree": "08c95fdc94c41bd707f95acffb505057496cb3be",
      "parents": [
        "d51a5ca1084c69c0ed304126a7aaa0a648b2eba6"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Feb 25 17:02:49 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Feb 25 17:02:49 2021 +0100"
      },
      "message": "kbx: Log debug fixes\n\n--\n"
    },
    {
      "commit": "d51a5ca1084c69c0ed304126a7aaa0a648b2eba6",
      "tree": "8d16120f5d4f62ad551d3a73d638bb2882794c83",
      "parents": [
        "7de53c2633eea9063a65e4d3b46138901ef3e7f9"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Feb 25 12:34:02 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Feb 25 17:01:38 2021 +0100"
      },
      "message": "scd:p15: Read out the access flags.\n\n* scd/app-p15.c (struct keyaccess_flags_s): New.\n(struct prkdf_object_s): Add field accessflags.\n(dump_keyusage_flags): New.\n(dump_keyaccess_flags): New.\n(parse_keyaccess_flags): New.\n(parse_common_key_attr): Return access flags.\n(read_ef_prkdf): Parse the access flags.  Allow for ECkeys.\n(read_ef_pukdf): Ditto.  Use new functions for printing.\n(read_p15_info): Use new fucntion for printing.\n"
    },
    {
      "commit": "7de53c2633eea9063a65e4d3b46138901ef3e7f9",
      "tree": "32513b3857e1432a2ce0c6d3ce9de503e18de1aa",
      "parents": [
        "a170f0e73f38e474b6d4463433fe344eca865fa5"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Feb 25 15:48:34 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Feb 25 17:01:03 2021 +0100"
      },
      "message": "build: Require sqlite 3.27\n\n--\n\nRequiring 3.28 had the problem that for example Debin distributes a\n3.27 with backported fixes.  There is no 3.28.  So we relax this\nagain.\n\nFixes-commit: d763548f2e00726a40ec886c8179c07bf4e6e664\n"
    },
    {
      "commit": "a170f0e73f38e474b6d4463433fe344eca865fa5",
      "tree": "730d647693276f6d15f6493048b93c595329bcc3",
      "parents": [
        "473b83d1b9efe51fcca68708580597dddf3f50b7"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Feb 25 09:16:18 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Feb 25 09:16:18 2021 +0100"
      },
      "message": "sm: Do not print certain issuer not found diags in quiet mode.\n\n* sm/certchain.c (find_up_dirmngr): Print one diagnostic only in\nverbose mode.  Do not print issuer not found diags in quiet mode.\n* sm/minip12.c (parse_bag_data): Add missing verbose condition.\n--\n\nGnuPG-bug-id: 4757\n"
    },
    {
      "commit": "473b83d1b9efe51fcca68708580597dddf3f50b7",
      "tree": "1cb4b3603a1afcd73f2f5c2a8f62e3f71959d8e7",
      "parents": [
        "d763548f2e00726a40ec886c8179c07bf4e6e664"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Feb 25 09:00:38 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Feb 25 09:00:38 2021 +0100"
      },
      "message": "sm: Fix issuer certificate look error due to legacy error code.\n\n* sm/certchain.c (find_up): Get rid of the legacy return code -1 and\nchnage var name rc to err.\n(gpgsm_walk_cert_chain): Change var name rc to err.\n(do_validate_chain): Get rid of the legacy return code -1.\n--\n\nThis was detected while fixing\nGnuPG-bug-id: 4757\n"
    },
    {
      "commit": "d763548f2e00726a40ec886c8179c07bf4e6e664",
      "tree": "f074b8b7c1e93ad31d18c3574e030e91f7c10a44",
      "parents": [
        "cfdaf2bcc85b3b6f16904006f239b400a3487ff8"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Wed Feb 24 22:53:40 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Wed Feb 24 22:53:40 2021 +0100"
      },
      "message": "build: Require a fixed SQlite version.\n\n--\n\nWe are actually not vulnerable but it seems to be a good idea to force\ninstallation of a good copy of SQlite\n\nGnuPG-bug-id: 4510\n"
    },
    {
      "commit": "cfdaf2bcc85b3b6f16904006f239b400a3487ff8",
      "tree": "619b74e76f91eb2c8d793f3c55a74319272d1084",
      "parents": [
        "8f353cbacb4437c22e39f93d4cf440943107c956"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Wed Feb 24 15:50:00 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Wed Feb 24 15:50:00 2021 +0100"
      },
      "message": "scd:p15: Get the label value of all objects for better diagnostics.\n\n* scd/app-p15.c (struct cdf_object_s): Add fields authid, authidlen,\nand label.\n(struct prkdf_object_s): Add field label.\n(struct aodf_object_s): Ditto.\n(release_cdflist): Free new fields.\n(release_prkdflist): Free new field.\n(release_aodf_object): Ditto.\n(parse_common_obj_attr): Return the label.\n(read_ef_prkdf): Store the label.\n(read_ef_pukdf): Ditto.\n(read_ef_cdf): Use parse_common_obj_attr and store authid and label.\nPrint them im verbose mode.\n(read_ef_aodf): Store the label and print it.\n"
    },
    {
      "commit": "8f353cbacb4437c22e39f93d4cf440943107c956",
      "tree": "f97608e7af94960a8e3e2f7aa9323e9eb6db1064",
      "parents": [
        "615d2e4fb15859320ea0ebec1bb457c692c57f0a"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Wed Feb 24 11:08:45 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Wed Feb 24 11:08:45 2021 +0100"
      },
      "message": "doc: Explain how Tor is detected.\n\n--\n"
    },
    {
      "commit": "615d2e4fb15859320ea0ebec1bb457c692c57f0a",
      "tree": "34c7f56a8298204e4265008263625de01334139a",
      "parents": [
        "33aaa37e5bc0beb75305cdf9d8be850daccaee5e"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Wed Feb 24 08:40:06 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Wed Feb 24 08:40:06 2021 +0100"
      },
      "message": "sm: Silence some output on --quiet\n\n* sm/encrypt.c (gpgsm_encrypt): Take care of --quiet.\n* sm/gpgsm.c: Include minip12.h.\n(set_debug): Call p12_set_verbosity.\n* sm/import.c (parse_p12): Dump keygrip only in debug mode.\n* sm/minip12.c (opt_verbose, p12_set_verbosity): New.\n(parse_bag_encrypted_data): Print info messages only in verbose mode.\n--\n\nGnuPG-bug-id: 4757\n"
    },
    {
      "commit": "33aaa37e5bc0beb75305cdf9d8be850daccaee5e",
      "tree": "7ab0774072679e01afd912a513e624fc9884bba9",
      "parents": [
        "2490f4e8e1d1feecb44aefa79bd71f5f8b06c9a4"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Tue Feb 23 12:56:42 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Tue Feb 23 12:56:42 2021 +0100"
      },
      "message": "scd:p15: Make it code work again for D-Trust cards.\n\n* scd/app-p15.c (select_and_read_binary): Allow to skip the select.\n(select_and_read_record): Return the statusword.  Silence error\nmessage for SW_FILE_STRUCT.\n(select_ef_by_path): Fix selection with a home_DF.\n(read_first_record): Fallback to read_binary for CardOS and return\ninfo about this.\n(read_ef_prkdf): Use info from read_first_record to decide whether to\nuse record or binary mode.\n(read_ef_pukdf): Ditto.\n(read_ef_aodf): Ditto.\n(read_ef_cdf): Ditto.  New arg cdftype for diagnostics.\n(read_p15_info): Pass cdftype.\n\n* scd/apdu.h (SW_FILE_STRUCT): New.\n* scd/apdu.c (apdu_strerror): Map that one to a string.\n* scd/iso7816.c (map_sw): and to a gpg-error.\n"
    },
    {
      "commit": "2490f4e8e1d1feecb44aefa79bd71f5f8b06c9a4",
      "tree": "c753b28b18146bef1b8d644592f0130c1bc6b490",
      "parents": [
        "488eaedc9a332d8164dea22e469354fc10b0a253"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Mon Feb 22 18:28:45 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Mon Feb 22 18:28:45 2021 +0100"
      },
      "message": "scd: Fix readkey --info in case a readkey command is available.\n\n* scd/command.c (do_readkey): Make --info also work if a readkey\ncommand is available.\n\n* scd/app-p15.c (cdf_object_from_certid): Fix a but introduced with\nthe previous commit.\n"
    },
    {
      "commit": "488eaedc9a332d8164dea22e469354fc10b0a253",
      "tree": "c9fa3c1ce9950a444ab0b15b4e379fb6467c2ccf",
      "parents": [
        "4c9b509d2402f79668e502a9db5879280a4f683b"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Mon Feb 22 17:51:11 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Mon Feb 22 17:51:11 2021 +0100"
      },
      "message": "scd:p15: Extract extended usage flagsand act upon them.\n\n* scd/app-p15.c: Add a couple of oid constants.\n(struct cdf_object_s): Replace fields image and imagelen by cert.\n(struct prkdf_object_s): Add extusage flags\n(send_keypairinfo): Use them.\n(cdf_object_from_certid): Factor parts out to ...\n(cdf_object_from_objid): new function.\n(read_ef_prkdf): Move info printing to ...\n(read_p15_info): here.  Fill the extusage flags.\n(readcert_by_cdf): Cache the ksba cert object instead of the binary\ncert.\n* scd/app.c (select_additional_application): Fix a log_debug call.\n(scd_update_reader_status_file): Ditto.\n--\n\nThis allows us to return only KEYPAIRINFO lines for keys we can\nactually use.\n"
    },
    {
      "commit": "4c9b509d2402f79668e502a9db5879280a4f683b",
      "tree": "ebf4d2b33b9cb564564321abcc4b6998ed97519e",
      "parents": [
        "54c1f2518e5df3fe73d6541504d7cb89929f37b5"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Mon Feb 22 15:54:05 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Mon Feb 22 15:54:05 2021 +0100"
      },
      "message": "sm: Extend the list of known OIDs.\n\n* sm/keylist.c (oidtranstbl): Add a couple of OIDs and mark them for\nkey usage.\n"
    },
    {
      "commit": "54c1f2518e5df3fe73d6541504d7cb89929f37b5",
      "tree": "328fe5123ab3eaad5a667405d9830c05a0d7584e",
      "parents": [
        "c7d389e772767349c91d22f401498d264175c61d"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Sun Feb 21 12:09:57 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Sun Feb 21 12:38:55 2021 +0100"
      },
      "message": "tools,w32: Add resource and manifest files to all binaries.\n\n--\n"
    },
    {
      "commit": "c7d389e772767349c91d22f401498d264175c61d",
      "tree": "f8ad651e7cabce74bc39eeee9911d4a6d25d6ba9",
      "parents": [
        "4da91414e7584b53d806bc3be6c4b67fd4a5a3bc"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Fri Feb 19 18:01:25 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Fri Feb 19 18:01:25 2021 +0100"
      },
      "message": "doc: Update NEWS\n\n--\n"
    },
    {
      "commit": "4da91414e7584b53d806bc3be6c4b67fd4a5a3bc",
      "tree": "cdd29ad29206c39aa40d81f3539ab4afe8902b61",
      "parents": [
        "5573ab714b92f6ee899a816998e56e1238f4c573"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Fri Feb 19 12:11:38 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Fri Feb 19 12:11:38 2021 +0100"
      },
      "message": "wkd: Install gpg-wks-client under bin and add wrapper for libexec\n\n--\n\ngpg-wks-client is a pretty useful command on the command line.\nThus we now install it at bin and provide a compatibility wrapper.\n"
    },
    {
      "commit": "5573ab714b92f6ee899a816998e56e1238f4c573",
      "tree": "e9707f8e6acc48a24d86d1c99df17c0ced026fbf",
      "parents": [
        "6d4280b13ddc928ff6bc41bdf482030f0f814fdb"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Fri Feb 19 11:05:32 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Fri Feb 19 11:05:32 2021 +0100"
      },
      "message": "build: Remove now obsolete HAVE_NEWER_LIBGCRYPT AM conditional.\n\n* configure.ac (HAVE_NEWER_LIBGCRYPT): Remove conditional.\n* tools/Makefile.am (gpg_pair_tool_SOURCES):  We build it always.\n--\n\nThis is because we require libgcrypt 1.9 anyway.\n"
    },
    {
      "commit": "6d4280b13ddc928ff6bc41bdf482030f0f814fdb",
      "tree": "e66561880611e5fcd58f3cb4a13868f06d5fc366",
      "parents": [
        "8d5a9c858d97e6feb85d4af1c29b21c6f97a063b"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Fri Feb 19 10:15:54 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Fri Feb 19 10:15:54 2021 +0100"
      },
      "message": "scd: Minor tweak for easier backporting\n\n* scd/app-common.h (APP_CARD): New.  Use it in app-*.c to access\napp-\u003ecard.\n--\n\nThis should help to make backporting to 2.2 easier.\n"
    },
    {
      "commit": "8d5a9c858d97e6feb85d4af1c29b21c6f97a063b",
      "tree": "f3fb6da1614ebd7afb3d055719d363584efe47c5",
      "parents": [
        "5c2ff883392ab42de23c94cf6397d15919c48c91"
      ],
      "author": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Fri Feb 19 11:39:00 2021 +0900"
      },
      "committer": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Fri Feb 19 11:39:34 2021 +0900"
      },
      "message": "po: Update Japanese Translation.\n\n--\n\nSigned-off-by: NIIBE Yutaka \u003cgniibe@fsij.org\u003e\n"
    },
    {
      "commit": "5c2ff883392ab42de23c94cf6397d15919c48c91",
      "tree": "c30ce248e5ec3e9087a720630c88d9d60fe68617",
      "parents": [
        "22b4ab1ec732030b52eb533b3127bfe655e459d6"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Feb 18 16:16:25 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Feb 18 16:16:25 2021 +0100"
      },
      "message": "po: Unified the term \"message\" in the German translation\n\n--\n\nUsing \"Botschaft\" as we used to do is better than \"Nachricht\" as used\nin tofu and some other places.\n"
    },
    {
      "commit": "22b4ab1ec732030b52eb533b3127bfe655e459d6",
      "tree": "ac82f4eec6b8325d9e9cf5557fcd462f2cd4c697",
      "parents": [
        "40ddd9a6ba5a930af8b6c3c9c1f4ba12150ddad0"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Feb 18 16:11:49 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Feb 18 16:11:49 2021 +0100"
      },
      "message": "po: Update German translation\n\n--\n"
    },
    {
      "commit": "40ddd9a6ba5a930af8b6c3c9c1f4ba12150ddad0",
      "tree": "9c897160591de15074a32e1e3f59a96e90bd6736",
      "parents": [
        "8a74b87261d6980fd96a1ae1ec534dadeae224a7"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Feb 18 14:29:35 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Feb 18 16:09:05 2021 +0100"
      },
      "message": "po: update-po\n\n--\n"
    },
    {
      "commit": "8a74b87261d6980fd96a1ae1ec534dadeae224a7",
      "tree": "e992090ea9a0ade82a1e25d7fa16c3a19aa55408",
      "parents": [
        "0be4861762c21ebfb4c2e28bb9a3e5cfbc08e1a9"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Feb 18 16:07:19 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Feb 18 16:08:02 2021 +0100"
      },
      "message": "scd:piv: Fix a typo in a string.\n\n--\n"
    },
    {
      "commit": "0be4861762c21ebfb4c2e28bb9a3e5cfbc08e1a9",
      "tree": "d4d128349fb37e14337a2e10657e626e65a74f19",
      "parents": [
        "311f477b18035ec530a99fcff8d9b5d34b9ceb8d"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Feb 18 14:43:25 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Feb 18 14:43:43 2021 +0100"
      },
      "message": "po: Change translatability of a fallback string.\n\n* agent/call-pinentry.c (setup_genpin): Do not make the fallback\ntranslatable.\n"
    },
    {
      "commit": "311f477b18035ec530a99fcff8d9b5d34b9ceb8d",
      "tree": "35d72206f1d2cb0fea7616874c1ea9308395b039",
      "parents": [
        "8b2d01c68ec11a96e51d9f09c9eb34ee84e1f9b7"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Feb 18 14:26:00 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Feb 18 14:26:00 2021 +0100"
      },
      "message": "po: Update all po files from 2.2.27\n\n--\n"
    },
    {
      "commit": "8b2d01c68ec11a96e51d9f09c9eb34ee84e1f9b7",
      "tree": "7a566e368ac79a9af13b135297b3f45ab2d4567a",
      "parents": [
        "919a969354d4021f2e64a948b4c224cd37323713"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Feb 18 14:24:26 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Feb 18 14:24:26 2021 +0100"
      },
      "message": "po: Update POTFILES\n\n--\n"
    },
    {
      "commit": "919a969354d4021f2e64a948b4c224cd37323713",
      "tree": "e0e4e1c3460d5723bba774cf4a23e10ee6322c22",
      "parents": [
        "ab7dc4b524c3e2ad5153acfdbfa879a9e62d2dbe"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Feb 18 10:13:18 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Feb 18 13:25:33 2021 +0100"
      },
      "message": "speedo: Update w32 stuff from 2.2\n\n* build-aux/speedo.mk: Update from 2.2.  Add target w32-msi-release.\n* build-aux/speedo/w32/inst.nsi: Fix location of doc files.\n* build-aux/speedo/w32/wixlib.wxs: Add gpg-card and fix a wrong name.\n* Makefile.am (release): Support a WITH_MSI variable.\n(wixlibfile): Improve copying to archive.\n(release): Use AMTAR instead of TAR.\n--\n\nSigned-off-by: Werner Koch \u003cwk@gnupg.org\u003e\n"
    },
    {
      "commit": "ab7dc4b524c3e2ad5153acfdbfa879a9e62d2dbe",
      "tree": "91e80e544bfc2169524614dc5772d06dae792ecd",
      "parents": [
        "3fa1fa747b61867076e344c3eb07a66826c1983a"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Wed Feb 17 17:31:36 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Wed Feb 17 17:40:02 2021 +0100"
      },
      "message": "dirmngr: Support new gpgNtds parameter in LDAP keyserver URLs.\n\n* dirmngr/ldap-parse-uri.c (ldap_parse_uri): Support a new gpgNtds\nextension.\n* dirmngr/ks-engine-ldap.c (my_ldap_connect): Do ldap_init always with\nhostname - which is NULL and thus the same if not given.  Fix minor\nerror in error code handling.\n--\n\nNote that \"gpgNtds\" is per RFC-4512 case insensitive and has not yet\nbeen officially regisetered.  Thus for correctness the OID can be\nused:\n\n  1.3.6.1.4.1.11591.2.5          LDAP URL extensions\n  1.3.6.1.4.1.11591.2.5.1          gpgNtds\u003d1 (auth. with current user)\n\nNote that the value must be 1; all other values won\u0027t enable AD\nauthentication and are resevered for future use.\n\nThis has been cherry-picked from the 2.2 branch,\ncommit 55f46b33df08e8e0ea520ade5f73b321bc01d705\n\nSigned-off-by: Werner Koch \u003cwk@gnupg.org\u003e\n"
    },
    {
      "commit": "3fa1fa747b61867076e344c3eb07a66826c1983a",
      "tree": "336c2c8ff40ba74120ff67d73b7dd6289ea8cd1e",
      "parents": [
        "985e85dc0e6c54aa465a2af610c5a04fc10649a0"
      ],
      "author": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Tue Feb 16 13:36:32 2021 +0900"
      },
      "committer": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Tue Feb 16 13:36:32 2021 +0900"
      },
      "message": "build: Update gpg-error.m4 again.\n\n* m4/gpg-error.m4: Update from libgpg-error.\n\nSigned-off-by: NIIBE Yutaka \u003cgniibe@fsij.org\u003e\n"
    },
    {
      "commit": "985e85dc0e6c54aa465a2af610c5a04fc10649a0",
      "tree": "6a27efe95b6905e8e9a15532501de24051a61788",
      "parents": [
        "42e637a1c3de0ced206bf3c9560e2ebe928f0498"
      ],
      "author": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Mon Feb 15 10:15:13 2021 +0900"
      },
      "committer": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Mon Feb 15 10:15:13 2021 +0900"
      },
      "message": "build: Update gpg-error.m4.\n\n* m4/gpg-error.m4: Update from libgpg-error.\n\nSigned-off-by: NIIBE Yutaka \u003cgniibe@fsij.org\u003e\n"
    },
    {
      "commit": "42e637a1c3de0ced206bf3c9560e2ebe928f0498",
      "tree": "83ae98635ac386bada4614c1652cec865b99c458",
      "parents": [
        "e1e3f1db4660b5416828aeb636a7f767fadcc7a4"
      ],
      "author": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Fri Feb 12 16:07:19 2021 +0900"
      },
      "committer": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Fri Feb 12 16:07:19 2021 +0900"
      },
      "message": "agent: Comment spell fix.\n\n--\n\nSigned-off-by: NIIBE Yutaka \u003cgniibe@fsij.org\u003e\n"
    },
    {
      "commit": "e1e3f1db4660b5416828aeb636a7f767fadcc7a4",
      "tree": "a4af896a431a2ce54729f299a1e1a6b4e4865d12",
      "parents": [
        "83e0a9d6b990aa517bc338b578f7faf393ae1b0d"
      ],
      "author": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Fri Feb 12 15:40:15 2021 +0900"
      },
      "committer": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Fri Feb 12 15:40:15 2021 +0900"
      },
      "message": "build: Update gpg-error.m4.\n\n* m4/gpg-error.m4: Update from libgpg-error.\n\n--\n\nSigned-off-by: NIIBE Yutaka \u003cgniibe@fsij.org\u003e\n"
    },
    {
      "commit": "83e0a9d6b990aa517bc338b578f7faf393ae1b0d",
      "tree": "ad9c1e83868edae2a76f95a8a845c9e9eda68f60",
      "parents": [
        "9235c9b65b04944c657785009b3b104974f2c483"
      ],
      "author": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Fri Feb 12 15:33:11 2021 +0900"
      },
      "committer": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Fri Feb 12 15:33:11 2021 +0900"
      },
      "message": "build: Fix library dependency of g13 test program.\n\n* g13/Makefile.am (t_common_ldadd): Add GPG_ERROR_LIBS.\n\n--\n\nSigned-off-by: NIIBE Yutaka \u003cgniibe@fsij.org\u003e\n"
    },
    {
      "commit": "9235c9b65b04944c657785009b3b104974f2c483",
      "tree": "02df743fd6be6d2b9bf5031a2ca87c7e50f56979",
      "parents": [
        "b770393b76b6994a0746dc898a856e8a19491f6f"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Feb 11 12:53:28 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Feb 11 12:53:28 2021 +0100"
      },
      "message": "doc: Add NEWS with news from the 2.2 series.\n\n--\n"
    },
    {
      "commit": "b770393b76b6994a0746dc898a856e8a19491f6f",
      "tree": "2ef21dcc364773eb2b97ba00f6aabc626c531650",
      "parents": [
        "825dd7220ff6079cbe2d0df7fde93526c077fb6d"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Feb 11 12:15:49 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Feb 11 12:15:49 2021 +0100"
      },
      "message": "doc: Improve the gpg-card man page.\n\n--\n"
    },
    {
      "commit": "825dd7220ff6079cbe2d0df7fde93526c077fb6d",
      "tree": "8326478d78d1c32eebe440eaa99298dca77e11e4",
      "parents": [
        "6e730c18816fbb3e074d93840396ed18f00ab7e2"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Wed Feb 10 14:31:34 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Wed Feb 10 14:40:02 2021 +0100"
      },
      "message": "gpg: Do not allow old cipher algorithms for encryption.\n\n* g10/gpg.c: New option --allow-old-cipher-algos.\n(set_compliance_option): Set --rfc4880bis explictly to SHA256 and\nAES256.  Allow old cipher algos for OpenPGP, rfc4880, and rfc2440.\n* g10/options.h (opt): Add flags.allow_old_cipher_algos.\n* g10/misc.c (print_sha1_keysig_rejected_note): Always print the note\nunless in --quiet mode.\n* g10/encrypt.c (setup_symkey): Disallow by default algos with a\nblocklengt \u003c 128.\n(encrypt_crypt): Ditto.  Fallback by default to AES instead of 3DES.\n* g10/pkclist.c (algo_available): Take care of old cipher also.\n(select_algo_from_prefs): Use AES as implicit algorithm by default.\n\n* tests/openpgp/defs.scm (create-gpghome): Set allow-old-cipher-algos.\n--\n\nGnuPG-bug-id: 3415\n"
    },
    {
      "commit": "6e730c18816fbb3e074d93840396ed18f00ab7e2",
      "tree": "db49e39d17c208dce138cdf66455787200774254",
      "parents": [
        "2b75b256054427119a284792540243c3471267d4"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Wed Feb 10 08:40:56 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Wed Feb 10 08:40:56 2021 +0100"
      },
      "message": "Remove obsolete M4 macros.\n\n* m4/gnupg-pth.m4: Remove.\n* m4/libcurl.m4: Remove.\n--\n\nBoth macros are not used for ages.\n"
    },
    {
      "commit": "2b75b256054427119a284792540243c3471267d4",
      "tree": "2ee874538b232116982a01c83d31503c8308dfa6",
      "parents": [
        "f9e4dae08d7caed741d35916c46b8302e098d521"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Wed Feb 10 08:32:57 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Wed Feb 10 08:32:57 2021 +0100"
      },
      "message": "Require GpgRT version 1.41.\n\n* configure.ac (NEED_GPG_ERROR_VERSION): Rename to NEED_GPGRT_VERSION\nand set to 1.41.\n* common/sysutils.c (gnupg_access): Remove code for older gpgrt\nversions.\n* kbx/backend-sqlite.c: Ditto.\n* sm/gpgsm.c (main): Ditto.\n--\n\nWe already have a requirement for a newer Libgcrypt and thus we can\nalso require a more recent libgpgrt (aka libgpg-error) which was\nreleased before Libgcrypt.\n"
    },
    {
      "commit": "f9e4dae08d7caed741d35916c46b8302e098d521",
      "tree": "dc72fdbc2c12f5df72e8b4a1c009c1011d3dd562",
      "parents": [
        "209b7113f3493bd829ec5c90275ff95a273d9dd4"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Tue Feb 09 18:40:49 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Tue Feb 09 18:42:34 2021 +0100"
      },
      "message": "build: Make make distcheck work again.\n\n* m4/Makefile.am (EXTRA_DIST): Remove isc-posix.m4\n--\n\nFixes-commit: d66fb3aa53a6c4a815fe35a15e3c61886c5df628\n"
    },
    {
      "commit": "209b7113f3493bd829ec5c90275ff95a273d9dd4",
      "tree": "d10fabdb0133451bd989def4ee5c11b3e7143b41",
      "parents": [
        "390f597868a5b5934f21f81ebf6ff110b6792283"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Tue Feb 09 18:41:43 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Tue Feb 09 18:42:25 2021 +0100"
      },
      "message": "tools: Remove the symcryptrun tool.\n\n* tools/symcryptrun.c: Remove.\n* tools/Makefile.am: Ditto.\n* doc/tools.texi: Remove man page.\n* configure.ac: Remove build option and tests used only by this tool.\n* Makefile.am (AM_DISTCHECK_CONFIGURE_FLAGS): Do not build\nsymcryptrun.\n--\n\nsymcryptrun is too ancient to be of any use and has not been tested in\nmany years.  Thus we should not distribute it anymore.\n"
    },
    {
      "commit": "390f597868a5b5934f21f81ebf6ff110b6792283",
      "tree": "ecf94e4ea8d23f5b71454c02508d157241ae04aa",
      "parents": [
        "7f3ce66ec56a5aea6170b7eb1bda5626eb208c83"
      ],
      "author": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Fri Feb 05 13:49:10 2021 +0900"
      },
      "committer": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Fri Feb 05 13:49:10 2021 +0900"
      },
      "message": "gpg: Fix selection of key.\n\n* g10/getkey.c (pubkey_cmp): Handle the case of TRUST_EXPIRED.\n\n--\n\nGnuPG-bug-id: 4713\nSigned-off-by: NIIBE Yutaka \u003cgniibe@fsij.org\u003e\n"
    },
    {
      "commit": "7f3ce66ec56a5aea6170b7eb1bda5626eb208c83",
      "tree": "3d57f33c5290451c3034fa88eabed0ca2ca78678",
      "parents": [
        "fde7d833573d358b2c5b5eb7d837bc27c6dcb3d1"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Tue Feb 02 19:53:21 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Tue Feb 02 19:53:21 2021 +0100"
      },
      "message": "gpg: Remove support for PKA.\n\n* g10/gpg.c (oPrintPKARecords): Remove.\n(opts): Remove --print-pka-records.\n(main): Remove \"pka-lookups\",\"pka-trust-increase\" and other PKA stuff.\n* g10/options.h (EXPORT_DANE_FORMAT): Remove.\n(VERIFY_PKA_LOOKUPS, VERIFY_PKA_TRUST_INCREASE): Remove.\n(KEYSERVER_HONOR_PKA_RECORD): Remove.\n* g10/packet.h (pka_info_t): Remove.\n(PKT_signature): Remove flags.pka_tried and pka_info.\n* g10/parse-packet.c (register_known_notation): Remove\n\"pka-address@gnupg.org\".\n* g10/pkclist.c (check_signatures_trust): Remove PKA stuff.\n* g10/call-dirmngr.c (gpg_dirmngr_get_pka): Remove.\n* g10/export.c (parse_export_options): Remove \"export-pka\".\n(do_export): Adjust for this.\n(write_keyblock_to_output): Ditto.\n(do_export_stream): Ditto.\n(print_pka_or_dane_records): Rename to ...\n(print_dane_records): this and remove two args. Remove PKA printing.\n* g10/free-packet.c (free_seckey_enc, cp_pka_info): Adjust for removed\npka_info field.\n* g10/getkey.c (get_pubkey_byname): Make AKL_PKA a dummy.\n* g10/keyserver.c: Remove \"honor-pka-record\".\n(keyserver_import_pka): Remove.\n* g10/mainproc.c (get_pka_address): Remove.\n(pka_uri_from_sig): Remove.\n(check_sig_and_print): Remove code for PKA.\n--\n\nPKA (Public Key Association) was a DNS based key discovery method\nwhich looked up fingerprint by mail addresses in the DNS.  This goes\nback to the conference where DKIM was suggested to show that we\nalready had a better method for this available with PGP/MIME.  PKA was\nwas later superseded by an experimental DANE method and is today not\nanymore relevant.  It is anyway doubtful whether PKA was ever widely\nused.\n\nSigned-off-by: Werner Koch \u003cwk@gnupg.org\u003e\n"
    },
    {
      "commit": "fde7d833573d358b2c5b5eb7d837bc27c6dcb3d1",
      "tree": "10a218fb366d31b7eb2e9644459e92711c5c8ab9",
      "parents": [
        "3491faa3bb62c1c96c6dd5947516128b2a966535"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Tue Feb 02 13:06:12 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Tue Feb 02 13:06:33 2021 +0100"
      },
      "message": "gpg: Remove more or less useless tool gpgcompose.\n\n* g10/gpgcompose.c: Remove\n--\n\nThis tool duplicated a lot of code and was hard to maintain.  IIRC, it\nwas part of some Univerity assignment and of no real use anymore.\n"
    },
    {
      "commit": "3491faa3bb62c1c96c6dd5947516128b2a966535",
      "tree": "d06e2fb008451789512a94cdf81d9b3a2496a04b",
      "parents": [
        "a06c79b6143fc49e6f5169b8a9f53c691031d6ca"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Tue Feb 02 12:57:00 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Tue Feb 02 12:57:00 2021 +0100"
      },
      "message": "gpg: Remove experimental feature to export w/o user-ids.\n\n* g10/options.h (IMPORT_DROP_UIDS, EXPORT_DROP_UIDS): Remove.\n* g10/import.c (parse_import_options): Remove option import-drop-uids.\n(import_one_real): Remove drop uids code.\n(remove_all_uids): Remove function.\n* g10/export.c (parse_export_options): Remove option export-drop-uids.\n(do_export_one_keyblock): Remove drop uids code.\n"
    },
    {
      "commit": "a06c79b6143fc49e6f5169b8a9f53c691031d6ca",
      "tree": "b172b76806dc5aa720126fbd62e3007cc7d89aec",
      "parents": [
        "0c080ed5791ecf1606d1c2fddc0c55362fd171d3"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Tue Feb 02 12:39:13 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Tue Feb 02 12:40:07 2021 +0100"
      },
      "message": "card: List keys of pkcs#15 cards.\n\n* tools/gpg-card.c (list_p15): New.\n(list_card): Call it.\n"
    },
    {
      "commit": "0c080ed5791ecf1606d1c2fddc0c55362fd171d3",
      "tree": "885d0ef9947ad3bb0b9c197a8014fc0f65c79de8",
      "parents": [
        "0737dc8187a0eb9ca4661e2ad45954c718daa451"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Tue Feb 02 12:37:10 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Tue Feb 02 12:38:03 2021 +0100"
      },
      "message": "scd:p15: Read PuKDF and minor refactoring.\n\n* scd/app-p15.c (pukdf_object_t): New.\n(struct app_local_s): Add field public_key_info.\n(release_pukdflist): New.\n(select_and_read_record): No diagnostic in case of not_found.\n(read_first_record): New.  Factored out from the read_ef_ fucntions.\n(read_ef_pukdf): New.  Basically a copy of read_ef_prkdf for now.\n(read_p15_info): Also read the public keys.\n\n(cardtype2str): New.\n(read_ef_tokeninfo): Print a string with the cardtype.\n"
    },
    {
      "commit": "0737dc8187a0eb9ca4661e2ad45954c718daa451",
      "tree": "92fc86dfb29d2af545fcc86e7d3bae26bc970d1f",
      "parents": [
        "90c514868ff5fcf6d39490d4874ac3a31ba9e85f"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Mon Feb 01 10:28:52 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Mon Feb 01 10:28:52 2021 +0100"
      },
      "message": "sm: Add a few OIDs and merge OID tables.\n\n* sm/keylist.c (OID_FLAG_KP): New.\n(key_purpose_map): Merge into ...\n(oidtranstbl): this.\n(get_oid_desc): New arg \u0027matchflag\u0027.  Use function in place of direct\naccess to key_purpose_map.\n\nSigned-off-by: Werner Koch \u003cwk@gnupg.org\u003e\n"
    },
    {
      "commit": "90c514868ff5fcf6d39490d4874ac3a31ba9e85f",
      "tree": "8dc8d09146841ea634965c2d3a70234d93d33572",
      "parents": [
        "1e197c29ed95d021f5693cd3652b6acb07d928ea"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Jan 28 15:48:08 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Jan 28 15:48:08 2021 +0100"
      },
      "message": "Include the library version in the compliance checks.\n\n* common/compliance.c (gnupg_gcrypt_is_compliant): New.\n(gnupg_rng_is_compliant): Also check library version.\n* g10/mainproc.c (proc_encrypted): Use new function.\n(check_sig_and_print): Ditto.\n* sm/decrypt.c (gpgsm_decrypt): Ditto.\n* sm/encrypt.c (gpgsm_encrypt): Ditto.\n* sm/verify.c (gpgsm_verify): Ditto\n--\n\nThis will eventually allow us to declare Libgcrypt 1.9 to be de-vs\ncompliant.  GnuPG can use this information then for its own checks.\nAs of now GnuPG tests the version of the used library but that is a\nbit cumbersome to maintain.\n\nSigned-off-by: Werner Koch \u003cwk@gnupg.org\u003e\n"
    },
    {
      "commit": "1e197c29ed95d021f5693cd3652b6acb07d928ea",
      "tree": "32ebb057226a41466a43f5e45ded3b34ff793b8f",
      "parents": [
        "7620473cd007c074b0625a678caa6105a4c87142"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Wed Jan 27 18:39:42 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Wed Jan 27 18:39:42 2021 +0100"
      },
      "message": "scd:p15: Make file selection more robust.\n\n* scd/app-p15.c: Include host2net.h.\n(DEFAULT_HOME_DF): New.\n(select_and_read_binary): Replace slot by app.  Change callers.  Use\nselect_ef_by_path.\n(select_and_read_record): ditto.\n(select_ef_by_path): Make use use the home_df.\n(parse_certid): Adjust for always set home_df.\n(print_tokeninfo_tokenflags): Ditto.\n(app_select_p15): Take the home_df from the FCI returned by select.\n--\n\nThis uses modern APDUs and always selectd starting at the PCKS-15 home\nDF.  We could have made this much simpler but the goal is to keep\nsupport for older cards although we can\u0027t test that easily.\n\nSigned-off-by: Werner Koch \u003cwk@gnupg.org\u003e\n"
    },
    {
      "commit": "7620473cd007c074b0625a678caa6105a4c87142",
      "tree": "3d50435cd1b99321c6493a346731fda987d5c4b3",
      "parents": [
        "5bcbc8cee310067aa3cc48665b0fb0595c64ae4d"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Wed Jan 27 18:31:12 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Wed Jan 27 18:31:12 2021 +0100"
      },
      "message": "scd: Define new status word\n\n* scd/apdu.h (SW_NO_CURRENT_EF): New.\n--\n\nThis merely to show better diagnostics.\nUsed for example by CardOS 5.3.\n"
    },
    {
      "commit": "5bcbc8cee310067aa3cc48665b0fb0595c64ae4d",
      "tree": "b21465f7aba0d6f0f7958c34718e3a626213c377",
      "parents": [
        "b08418d22cc898c9d135217e07ca77f3daf3c9e9"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Wed Jan 27 13:11:19 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Wed Jan 27 13:28:12 2021 +0100"
      },
      "message": "scd:p15: Factor the commonKeyAttributes parser out.\n\n* scd/app-p15.c (read_ef_prkdf): Fix detection of unsupported key\n objects.  Factor some code out to ...\n(parse_common_key_attr): new.\n--\n"
    },
    {
      "commit": "b08418d22cc898c9d135217e07ca77f3daf3c9e9",
      "tree": "d117bfe18145762fd273a4dce3a0ffb6eb05589d",
      "parents": [
        "fb84674d6c645a423b8ed9835437d25e4893e183"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Wed Jan 27 11:45:33 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Wed Jan 27 11:49:20 2021 +0100"
      },
      "message": "gpg: Fix ugly error message for an unknown symkey algorithm.\n\n* g10/mainproc.c (proc_symkey_enc): Do not continue with an unknown\nalgorithm.\n--\n\nTrying to encrypt data created with\n\n printf \"\\x8c\\x49\\x05\\x0e\\x0a\\x03\\x01\"\n\nfails in version 2.2.19 with\n\n gpg: packet(3) with unknown version 5\n\nbut with later versions with\n\n  gpg: encrypted with unknown algorithm 14\n  gpg: Ohhhh jeeee: ... this is a bug \\\n       ([...]/passphrase.c:433:passphrase_to_dek)\n\nso we better catch this case earlier.\n\nReported-by: Tavis Ormandy\nSigned-off-by: Werner Koch \u003cwk@gnupg.org\u003e\n"
    },
    {
      "commit": "fb84674d6c645a423b8ed9835437d25e4893e183",
      "tree": "24309fc214b7e1fc3a95b30d71ec69b1eb29d616",
      "parents": [
        "fc287c0552b0fe489c66bb493879f4330c34f287"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Tue Jan 26 19:10:12 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Tue Jan 26 19:10:12 2021 +0100"
      },
      "message": "scd:p15: Factor the commonObjectAttributes parser out.\n\n* scd/app-p15.c (parse_common_obj_attr): New.\n(read_ef_prkdf): Use new function.\n(read_ef_aodf): Ditto.\n"
    },
    {
      "commit": "fc287c0552b0fe489c66bb493879f4330c34f287",
      "tree": "70353302f713b1e1b9d3924e79c9b543865c6c04",
      "parents": [
        "224e26cf7b67f22bb0140133eac6b4ad24f3b1b7"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Tue Jan 26 17:42:55 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Tue Jan 26 17:42:55 2021 +0100"
      },
      "message": "scd:p15: First step towards real CardOS 5 support.\n\n* scd/iso7816.c (iso7816_select_path): Add arg from_cdf.\n* scd/app-nks.c (do_readkey): Adjust for this change.\n\n* scd/app-p15.c (CARD_TYPE_CARDOS_53): New.\n(IS_CARDOS_5): New.\n(card_atr_list): Add standard ATR for CardOS 5.3.\n(select_and_read_binary): Remove the fallback to record read hack.\n(select_and_read_record): New.\n(select_ef_by_path): Rework and support CardOS feature.\n(read_ef_prkdf): Use read record for CardOS.\n(read_ef_cdf): Ditto.\n(read_ef_aodf): Ditto.  Also fix bug in the detection of other\nunsupported attribute types.\n(verify_pin): Use IS_CARDOS_5 macro.\n(app_select_p15): Force direct method for CardOS.\n\nSigned-off-by: Werner Koch \u003cwk@gnupg.org\u003e\n"
    },
    {
      "commit": "224e26cf7b67f22bb0140133eac6b4ad24f3b1b7",
      "tree": "8ffb4f94ef64331109af30f6984237be37da61e4",
      "parents": [
        "60499d98940d4b7a1673b8584cafe0f7ac2901dd"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Mon Jan 25 10:35:06 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Mon Jan 25 10:35:06 2021 +0100"
      },
      "message": "agent: Support ssh-agent extensions for environment variables.\n\n* common/session-env.c (session_env_list_stdenvnames): Extend to allow\nreturn all names as one string.\n* agent/command-ssh.c (SSH_REQUEST_EXTENSION): New.\n(SSH_RESPONSE_EXTENSION_FAILURE): New.\n(request_specs): Add handler for the extension command.\n(ssh_handler_extension): New.\n--\n\nThe extension mechanism is specified in\nhttps://tools.ietf.org/html/draft-miller-ssh-agent-04\n\nSigned-off-by: Werner Koch \u003cwk@gnupg.org\u003e\n"
    },
    {
      "commit": "60499d98940d4b7a1673b8584cafe0f7ac2901dd",
      "tree": "c6e16eaec5a071cfc4ed994b1c93444b115a862f",
      "parents": [
        "9500432b7ae10d98b30c58de4357e2ffb93bf795"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Jan 21 10:44:43 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Jan 21 10:44:43 2021 +0100"
      },
      "message": "scd:p15: Show the ATR as part of the TokenInfo diagnostics.\n\n* scd/app-p15.c (read_ef_tokeninfo): Print the ATR in verbose mode.\n--\n\nIt is convenient to see the ATR close to the other info,\n\nSigned-off-by: Werner Koch \u003cwk@gnupg.org\u003e\n"
    },
    {
      "commit": "9500432b7ae10d98b30c58de4357e2ffb93bf795",
      "tree": "63ebc784ad1b417a75df15ccda1d2b335add61c9",
      "parents": [
        "93d5d7ea2a8b110b3ad88be25f2f67d706361e44"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Tue Jan 19 10:33:03 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Tue Jan 19 10:33:03 2021 +0100"
      },
      "message": "Require Libgcrypt 1.9\n\n* configure.ac: Require at least Libgcrypt 1.9.0.  Remove all\nGCRYPT_VERSION_NUMBER dependent code.\n--\n\nOnly Libgcrypt 1.9 implements EAX which is a mandatory algorithm in\nRFC4880bis.\n\nSigned-off-by: Werner Koch \u003cwk@gnupg.org\u003e\n"
    },
    {
      "commit": "93d5d7ea2a8b110b3ad88be25f2f67d706361e44",
      "tree": "40bb8e13cb372a0e1cad329c1f1e08b8250109c5",
      "parents": [
        "ecaabc2d8f878217c6e5c5eab266405571e0f9da"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Tue Jan 12 09:30:34 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Tue Jan 12 09:31:20 2021 +0100"
      },
      "message": "tools: Add option --clock to watchgnupg\n\n* tools/watchgnupg.c (print_fd_and_time) [ENABLE_LOG_CLOCK]: Use\nclock_gettime.\n(print_version): New option --clock.\n"
    },
    {
      "commit": "ecaabc2d8f878217c6e5c5eab266405571e0f9da",
      "tree": "86283aa5dc7f52e556b10ca9d55753d19c9a4efb",
      "parents": [
        "b6967d31912912ad3c0a2ff6bf6eb9822a194562"
      ],
      "author": {
        "name": "bobwxc",
        "email": "bobwxc@yeah.net",
        "time": "Tue Jan 12 10:07:39 2021 +0900"
      },
      "committer": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Tue Jan 12 10:07:39 2021 +0900"
      },
      "message": "po: Update Simplified Chinese Translation.\n\n--\n\nGnuPG-bug-id: 5189\nSigned-off-by: bobwxc \u003cbobwxc@yeah.net\u003e\n"
    },
    {
      "commit": "b6967d31912912ad3c0a2ff6bf6eb9822a194562",
      "tree": "0058767932e827f539cdec89f55fd555359b0aa8",
      "parents": [
        "7eef40cc1143fb19132786ebcca1c9a6c9a85e6e"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Mon Jan 11 14:19:06 2021 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Mon Jan 11 14:19:06 2021 +0100"
      },
      "message": "gpg,w32: Fix gnupg_remove.\n\n* common/sysutils.c (map_w32_to_errno): New.\n(gnupg_w32_set_errno): New.\n(gnupg_remove) [w32]: Set ERRNO\n--\n\nTo support Unicode gnupg_remove was changed to use DeleteFileW and not\nproperly tested because the code was alreadt used in Windows CE.\nHowever, ERRNO was not set and thus Dirmngr failed due to\n\n if (!gnupg_remove (fname))\n   log_info (_(\"removed stale te[...] file \u0027%s\u0027\\n\"), fname);\n else if (errno !\u003d ENOENT)\n   {\n     err \u003d gpg_error_from_syserror ();\n     log_error (_(\"problem remov[...] file \u0027%s\u0027: %s\\n\"),\n                fname, gpg_strerror (err));\n     goto leave;\n   }\n\nGnuPG-bug-id: 5230\n"
    },
    {
      "commit": "7eef40cc1143fb19132786ebcca1c9a6c9a85e6e",
      "tree": "5b0603ac23091fc75737e4ce1d23f95fd5b70d17",
      "parents": [
        "8fe976d5b9a0f2902868737dd502c749565222a6"
      ],
      "author": {
        "name": "Ingo Klöcker",
        "email": "dev@ingo-kloecker.de",
        "time": "Wed Jan 06 15:04:49 2021 +0100"
      },
      "committer": {
        "name": "Ingo Klöcker",
        "email": "dev@ingo-kloecker.de",
        "time": "Wed Jan 06 15:04:49 2021 +0100"
      },
      "message": "I meant \"SHA-2 digests\" in the previous commit.\n\nGnuPG-bug-id: 5184\n"
    },
    {
      "commit": "8fe976d5b9a0f2902868737dd502c749565222a6",
      "tree": "5b0603ac23091fc75737e4ce1d23f95fd5b70d17",
      "parents": [
        "f4a8be0950ead8e03eb48f41eb1ab44c6817cf7d"
      ],
      "author": {
        "name": "Ingo Klöcker",
        "email": "dev@ingo-kloecker.de",
        "time": "Wed Jan 06 12:09:19 2021 +0100"
      },
      "committer": {
        "name": "Ingo Klöcker",
        "email": "dev@ingo-kloecker.de",
        "time": "Wed Jan 06 12:19:11 2021 +0100"
      },
      "message": "scd:nks: Add support for signing plain SHA-3 digests.\n\n* scd/app-nks.c (do_sign): Handle plain SHA-3 digests and verify\nencoding of ASN.1 encoded hashes.\n--\n\nThis makes it possible to create CSRs for NetKey card keys which are\nsigned with SHA256 by default.\n\nGnuPG-bug-id: 5184\n"
    },
    {
      "commit": "f4a8be0950ead8e03eb48f41eb1ab44c6817cf7d",
      "tree": "d01c2c06a0d93b427db53c2e3a57717d3e200f20",
      "parents": [
        "6850f21d08b2e783d5907f1a83122708c529c89c"
      ],
      "author": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Tue Jan 05 10:53:00 2021 +0900"
      },
      "committer": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Tue Jan 05 10:54:07 2021 +0900"
      },
      "message": "po: Fix Simplified Chinese Translation.\n\n--\n\nSigned-off-by: NIIBE Yutaka \u003cgniibe@fsij.org\u003e\n"
    },
    {
      "commit": "6850f21d08b2e783d5907f1a83122708c529c89c",
      "tree": "16ff790e882b643ea68dfb79f4df75179a10718d",
      "parents": [
        "bfb073c7327974516b11d3749e9258c6ae23a715"
      ],
      "author": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Tue Jan 05 10:44:01 2021 +0900"
      },
      "committer": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Tue Jan 05 10:44:01 2021 +0900"
      },
      "message": "po: Fix Simplified Chinese Translation.\n\n--\n\nSigned-off-by: NIIBE Yutaka \u003cgniibe@fsij.org\u003e\n"
    },
    {
      "commit": "bfb073c7327974516b11d3749e9258c6ae23a715",
      "tree": "ecd3affa503adc29bf15b60ea7550ad9e71f3c90",
      "parents": [
        "c008e8d20e12c8845403ad7dad499f6a196ecc6a"
      ],
      "author": {
        "name": "bobwxc",
        "email": "bobwxc@yeah.net",
        "time": "Tue Jan 05 10:08:05 2021 +0900"
      },
      "committer": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Tue Jan 05 10:08:05 2021 +0900"
      },
      "message": "po: Update Simplified Chinese Translation.\n\n--\n\nGnuPG-bug-id: 5189\nSigned-off-by: bobwxc \u003cbobwxc@yeah.net\u003e\n"
    },
    {
      "commit": "c008e8d20e12c8845403ad7dad499f6a196ecc6a",
      "tree": "4a9d11a389c5476f1cecd74f72079f2a0d7dc2cf",
      "parents": [
        "22f7dddc34446a8c3e9eddf6cb281f16802351d7"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Wed Dec 30 15:00:28 2020 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Wed Dec 30 15:03:46 2020 +0100"
      },
      "message": "wkd: Minor permission fix for created files.\n\n* tools/wks-util.c (wks_cmd_install_key): Don\u0027t set u+x on the file.\n(ensure_policy_file): No need to make the policy file group writable.\n--\n\nThe policy file is rarely changed thus no need to g+w.  Setting +x on\na plain file does not make sense at all.\n\nGnuPG-bug-id: 5214\n"
    },
    {
      "commit": "22f7dddc34446a8c3e9eddf6cb281f16802351d7",
      "tree": "b92bd40401cb10f8e2715b7a58564e78e937ade1",
      "parents": [
        "15e065dee891eef9545556f210b4199107999869"
      ],
      "author": {
        "name": "Yao Wei",
        "email": "mwei@debian.org",
        "time": "Mon Dec 28 17:14:17 2020 +0900"
      },
      "committer": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Mon Dec 28 17:16:11 2020 +0900"
      },
      "message": "Update Traditional Chinese doc/help.zh_TW.txt\n\n--\n\nSigned-off-by: Yao Wei \u003cmwei@debian.org\u003e\n"
    },
    {
      "commit": "15e065dee891eef9545556f210b4199107999869",
      "tree": "3a879a215a66bccacb24bada7230657bff85744d",
      "parents": [
        "ea3fb3dc946263059aa1edb69745d0d90cd6b297"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Wed Dec 23 14:45:20 2020 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Wed Dec 23 14:45:55 2020 +0100"
      },
      "message": "doc: Add instructions on how to setup an Active Directory.\n\n--\n"
    },
    {
      "commit": "ea3fb3dc946263059aa1edb69745d0d90cd6b297",
      "tree": "135def7062f09468f226df4a6539356c06d45845",
      "parents": [
        "eeea4f0fabf7c8e1eb8aed2d46dbb0ad2b7412ae"
      ],
      "author": {
        "name": "bobwxc",
        "email": "bobwxc@yeah.net",
        "time": "Wed Dec 23 11:34:24 2020 +0900"
      },
      "committer": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Wed Dec 23 11:38:50 2020 +0900"
      },
      "message": "doc: Update Simplified Chinese doc/help.zh_CN.txt.\n\n--\n\nGnuPG-bug-id: 5189\nSigned-off-by: bobwxc  \u003cbobwxc@yeah.net\u003e\n"
    },
    {
      "commit": "eeea4f0fabf7c8e1eb8aed2d46dbb0ad2b7412ae",
      "tree": "6eed9da36da9904697d137c4754b111c8638819a",
      "parents": [
        "fc0eaa9add3c9bc93d4404988be3e1eb8f88ffa2"
      ],
      "author": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Wed Dec 23 11:25:03 2020 +0900"
      },
      "committer": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Wed Dec 23 11:25:03 2020 +0900"
      },
      "message": "doc: Update Japanese doc/help.ja.txt.\n\n--\n\nSigned-off-by: NIIBE Yutaka \u003cgniibe@fsij.org\u003e\n"
    },
    {
      "commit": "fc0eaa9add3c9bc93d4404988be3e1eb8f88ffa2",
      "tree": "548fec66ef4f31de1eabea0667ece7732b29de74",
      "parents": [
        "e0cbb97925a109fee7c0a7450bcac120f2766ed2"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Mon Dec 21 17:37:35 2020 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Mon Dec 21 19:43:35 2020 +0100"
      },
      "message": "common: Remove superfluous debug output from dotlock.c.\n\n* common/dotlock.c (dotlock_create_unix): Remove debug output.\n--\n\nThis was left over from developement about 10 years ago.  Exhibits\nitself when using sshfs.\n\nGnuPG-bug-id: 5193\n"
    },
    {
      "commit": "e0cbb97925a109fee7c0a7450bcac120f2766ed2",
      "tree": "c82bc3a48d226ed10728a57bfb7d278a42f7867c",
      "parents": [
        "355e2992c043dd3241a9e838255f01418490ef33"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Mon Dec 21 15:07:32 2020 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Mon Dec 21 16:06:16 2020 +0100"
      },
      "message": "doc: Explain LDAP keyserver parameters\n"
    },
    {
      "commit": "355e2992c043dd3241a9e838255f01418490ef33",
      "tree": "4e5aba655fb63dfc3a8fd6db28088a9d87bc329c",
      "parents": [
        "4a3836e2b2f9a91995d5ce058820e1121298f548"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Fri Dec 18 11:56:15 2020 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Fri Dec 18 11:57:14 2020 +0100"
      },
      "message": "dirmngr: Do not block threads in LDAP keyserver calls.\n\n* dirmngr/ks-engine-ldap.c: Wrap some ldap calls.\n--\n\nThe former gpgkeys_ldap module has once been ported to dirmngr but\nunfortunately the dirmngr_ldap wrapper has not been used so that we\nhave internal LDAP calls with these problems:\n\n- No usable timeouts.\n- On non-Windows platforms a lot of extra libs and possibly even a\n  second copy of Libgcrypt is pulled in.\n- Only one threads runs at a time.\n\nThis patch mitigates the last point.\n\nSigned-off-by: Werner Koch \u003cwk@gnupg.org\u003e\n"
    },
    {
      "commit": "4a3836e2b2f9a91995d5ce058820e1121298f548",
      "tree": "29040bbaf899bdd5843710645f5367f35812ff16",
      "parents": [
        "1194e4f7e2dff620e0da87f212f3a35f8021b142"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Dec 17 18:18:52 2020 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Dec 17 18:25:34 2020 +0100"
      },
      "message": "gpg: New AKL method \"ntds\"\n\n* dirmngr/ks-engine-ldap.c (keyspec_to_ldap_filter): Change the new\nsupport for KEYDB_SEARCH_MODE_MAIL.\n(ks_ldap_get): Add a debug.\n* g10/options.h (AKL_NTDS): New.\n* g10/keyserver.c (keyserver_import_ntds): New.\n(keyserver_get_chunk): Allow KEYDB_SEARCH_MODE_MAIL.\n* g10/getkey.c (parse_auto_key_locate): Support \"ntds\".\n(get_pubkey_byname): Ditto.\n"
    },
    {
      "commit": "1194e4f7e2dff620e0da87f212f3a35f8021b142",
      "tree": "4bd948d4c1cb09ed6a45b80bebefa2c79a22d033",
      "parents": [
        "2cadcce3e877c857bb8859574762b59b9c193b44"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Dec 17 16:09:31 2020 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Dec 17 18:25:11 2020 +0100"
      },
      "message": "dirmngr: Support \"ldap:///\" for the current AD user.\n\n* dirmngr/http.h (struct parsed_uri_s): Add field ad_current.\n* dirmngr/ldap-parse-uri.c (ldap_parse_uri): Set it.\n* dirmngr/ks-engine-ldap.c (my_ldap_connect): Take care of ad_current.\n--\n\nPorted from 2.2.\n\nSigned-off-by: Werner Koch \u003cwk@gnupg.org\u003e\n"
    },
    {
      "commit": "2cadcce3e877c857bb8859574762b59b9c193b44",
      "tree": "61b0937ab480d3133e8df81290b0cbffd7f469c2",
      "parents": [
        "2b06afbf260f620e4a1191aea6176535a3d71aed"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Dec 17 10:20:28 2020 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Dec 17 10:20:28 2020 +0100"
      },
      "message": "dirmngr: Allow LDAP searches via fingerprint.\n\n* dirmngr/ks-engine-ldap.c (keyspec_to_ldap_filter): Add arg\nserverinfo and allow searching by fingerprint.\n(ks_ldap_get, ks_ldap_search): First connect then create teh filter.\n--\n\nWith the new schema we can finally search by fingerprint.\n"
    },
    {
      "commit": "2b06afbf260f620e4a1191aea6176535a3d71aed",
      "tree": "39161260d7154b44cded757ba950ab68f56cadbc",
      "parents": [
        "a2434ccabdd1956876b44e05e07c3c3630c50f8f"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Dec 17 10:17:22 2020 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Thu Dec 17 10:17:22 2020 +0100"
      },
      "message": "dirmngr: Finalize Active Directory LDAP Schema\n\n--\n\nWith these modifications it is now possible to store and retrieve keys\nfrom an AD without manually tweaking the schema.  Permissions need to\nbe set manuallay, though.\n"
    },
    {
      "commit": "a2434ccabdd1956876b44e05e07c3c3630c50f8f",
      "tree": "219da778f6b652d44611a977750943e9af03c4ed",
      "parents": [
        "2c6bb03cfb56b99acf5136e5143de336a82b7402"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Tue Dec 15 08:55:36 2020 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Tue Dec 15 13:36:19 2020 +0100"
      },
      "message": "dirmngr: Store all version 2 schema attributes.\n\n* g10/call-dirmngr.c (ks_put_inq_cb): Emit \"fpr\" records.\n* dirmngr/ks-engine-ldap.c (extract_attributes): Add args\nextract-state and schemav2.  Add data for the new schema version.\nremove the legacy code to handle UIDs in the \"pub\" line.\n(ks_ldap_put): Set new attributes for NTDS use the fingerprint as CN.\n\nSigned-off-by: Werner Koch \u003cwk@gnupg.org\u003e\n"
    },
    {
      "commit": "2c6bb03cfb56b99acf5136e5143de336a82b7402",
      "tree": "f9e80a62b33d1b2e55c6a36ce45b5f1dde4b3d57",
      "parents": [
        "e9ddd61fe979b1b8e1a4801f7f916d0222397245"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Tue Dec 15 08:52:06 2020 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Tue Dec 15 08:52:06 2020 +0100"
      },
      "message": "dirmngr: Remove superfluous attribute from the LDAP schema.\n\n--\n\nI accidently added a gpgSubCertID attribute not realizing that the\npgpSubKeyID already carries the long keyid.  Remove that.  Note that\nthe pgpkeyID has the short keyid and the long keyid has the name\npgpCertID.\n\nSigned-off-by: Werner Koch \u003cwk@gnupg.org\u003e\n"
    },
    {
      "commit": "e9ddd61fe979b1b8e1a4801f7f916d0222397245",
      "tree": "4acb86b0c643e333e4b3f9ebc10a1277d797dce8",
      "parents": [
        "cc056eb534c1b8f7d1a90af3b9ecb9d6b2f322fa"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Mon Dec 14 19:28:25 2020 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Mon Dec 14 19:29:49 2020 +0100"
      },
      "message": "dirmngr: Support the new Active Directory schema\n\n* dirmngr/ks-engine-ldap.c (SERVERINFO_): New constants.\n(my_ldap_connect): Relace args pgpkeyattrp and real_ldapp by a new\nserverinfo arg.  Set the new info flags.\n(ks_ldap_get): Adjust for change.\n(ks_ldap_search): Ditto.\n(ks_ldap_put): Ditto.  Replace xmalloc by xtrymalloc.  Change the DN\nfor use with NTDS (aka Active Directory).\n* doc/ldap/gnupg-ldap-init.ldif (pgpSoftware): Update definition of\npgpVersion.\n* doc/ldap/gnupg-ldap-ad-init.ldif: New.\n* doc/ldap/gnupg-ldap-ad-schema.ldif: New.\n--\n\nThis is a first take on better Active Directory support.  The main\nchange for NTDS in the code is that the an top-RDN of CN is used\ninstead of the old pgpCertID.  More changes to come; for example using\nand storing the fingerprint.\n\nSigned-off-by: Werner Koch \u003cwk@gnupg.org\u003e\n"
    },
    {
      "commit": "cc056eb534c1b8f7d1a90af3b9ecb9d6b2f322fa",
      "tree": "fe95dcd9ff5ae786516005551415ad0086245f56",
      "parents": [
        "37a899d0e4fd49512d522e7f6f86b6968309fece"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Mon Dec 14 15:18:01 2020 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Mon Dec 14 19:29:49 2020 +0100"
      },
      "message": "dirmngr: Do not store the useless pgpSignerID in the LDAP.\n\n* dirmngr/ks-engine-ldap.c (extract_attributes): Do not store the\npgpSignerID.\n* g10/call-dirmngr.c (ks_put_inq_cb): Do not emit sig records.\n--\n\nThe pgpSignerID has no use in the LDAP and thus don\u0027t store it.\nDavid\u0027s idea back in 2004 was\n              /* This bit is really for the benefit of people who\n                 store their keys in LDAP servers.  It makes it easy\n                 to do queries for things like \"all keys signed by\n                 Isabella\".  */\nSee-commit: 3ddd4410aef928827e1c8d4fb02c1ccd3f8eaea5\n\nI consider this dangerous because such a query is not able to validate\nthe signature, does not get revocation signatures, and also has no\ninformation about the validity of the signatures.  Further many keys\nare spammed tehse days with faked signatures and it does not make\nsense to blow up the LDAP with such garbage.\n\nSigned-off-by: Werner Koch \u003cwk@gnupg.org\u003e\n"
    },
    {
      "commit": "37a899d0e4fd49512d522e7f6f86b6968309fece",
      "tree": "2a76fcc7a338eacba83383ca9956e70c3a8c0ec8",
      "parents": [
        "3b392630881350baabeba16fa760bad04be94d03"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Mon Dec 14 15:15:17 2020 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Mon Dec 14 19:29:49 2020 +0100"
      },
      "message": "dirmngr: Fix adding keys to an LDAP server.\n\n* dirmngr/ks-engine-ldap.c (ks_ldap_put): Extract attribites into\naddlist.\n--\n\nThe code used the wrong list which resulting in adding attributes\nmarked for deletion.  In particular Active Directory does not accept\nsuch an data and rejects them.  The bug was introduced into 2.1 while\nporting the code from the old keyserver helpers to dirmngr.\n\nFixes-commit: 51341badb623927f2a358588c725a356fc77dbe7\nSigned-off-by: Werner Koch \u003cwk@gnupg.org\u003e\n"
    },
    {
      "commit": "3b392630881350baabeba16fa760bad04be94d03",
      "tree": "e150c075bd9e206741206ac4a047d92daf3ae6c5",
      "parents": [
        "b7c087375d84c31ab8a645cd81e6b1e6185cb30d"
      ],
      "author": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Fri Dec 11 14:08:40 2020 +0900"
      },
      "committer": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Fri Dec 11 14:08:40 2020 +0900"
      },
      "message": "scd:nks: Support READKEY with keygrip and for \"NKS-IDLM\" keyref.\n\n* scd/app-nks.c (do_readkey): Allow KEYGRIP access.\nSupport NKS-IDLM.XXXX keyref.\n\n--\n\nGnuPG-bug-id: 5150\nSigned-off-by: NIIBE Yutaka \u003cgniibe@fsij.org\u003e\n"
    },
    {
      "commit": "b7c087375d84c31ab8a645cd81e6b1e6185cb30d",
      "tree": "5d61c423156315c3292de9691bf3dca1f534e251",
      "parents": [
        "4020cd9d656264bec5e7fb5e45c5e06eff8656c3"
      ],
      "author": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Fri Dec 11 14:06:52 2020 +0900"
      },
      "committer": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Fri Dec 11 14:06:52 2020 +0900"
      },
      "message": "scd:nks: Factor out pubkey retrieval from keygrip handling.\n\n* scd/app-nks.c (pubkey_from_pk_file): New.\n(keygripstr_from_pk_file): Use pubkey_from_pk_file.\n\nSigned-off-by: NIIBE Yutaka \u003cgniibe@fsij.org\u003e\n"
    },
    {
      "commit": "4020cd9d656264bec5e7fb5e45c5e06eff8656c3",
      "tree": "bf1a4423a5d7b14e26482af73ff7fca573db3f1d",
      "parents": [
        "6c4365847666cefac73ccc743a99fac473da2186"
      ],
      "author": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Thu Dec 10 10:27:21 2020 +0900"
      },
      "committer": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Thu Dec 10 10:40:35 2020 +0900"
      },
      "message": "scd:nks: Add support of KEYGRIP for do_readcert.\n\n* scd/app-nks.c (do_readcert): Support KEYGRIP.\n\n--\n\nGnuPG-bug-id: 5150\nSigned-off-by: NIIBE Yutaka \u003cgniibe@fsij.org\u003e\n"
    },
    {
      "commit": "6c4365847666cefac73ccc743a99fac473da2186",
      "tree": "1e74ec36ed01c7da3e9fdaea89cdef6f43be93bb",
      "parents": [
        "c7c88648b71b8ce3a5507946afb91761fc6d931e"
      ],
      "author": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Thu Dec 10 10:05:38 2020 +0900"
      },
      "committer": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Thu Dec 10 10:40:11 2020 +0900"
      },
      "message": "scd:nks: Factor out iteration over filelist.\n\n* scd/app-nks.c (iterate_over_filelist): New.\n(do_with_keygrip): Use iterate_over_filelist.\n\nSigned-off-by: NIIBE Yutaka \u003cgniibe@fsij.org\u003e\n"
    },
    {
      "commit": "c7c88648b71b8ce3a5507946afb91761fc6d931e",
      "tree": "566a2ac095cba8fad2379bee7b2b6ec5e4768989",
      "parents": [
        "a9aa30ed2c2c399c2baa6a5aa2624d8fdee6286f"
      ],
      "author": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Wed Dec 09 10:59:11 2020 +0100"
      },
      "committer": {
        "name": "Werner Koch",
        "email": "wk@gnupg.org",
        "time": "Wed Dec 09 10:59:51 2020 +0100"
      },
      "message": "wks-client: Improve an error message\n\n* tools/gpg-wks-client.c (read_confirmation_request): Print trust\nletter.\n--\n\nThe trust letter gives a hint on what\u0027s wrong with the key.\n\nSigned-off-by: Werner Koch \u003cwk@gnupg.org\u003e\n"
    },
    {
      "commit": "a9aa30ed2c2c399c2baa6a5aa2624d8fdee6286f",
      "tree": "6cb7f40cc6c93be82044f32360cc92578808beca",
      "parents": [
        "f50373027222f28ab9d37843178a5d44cc1e3cc0"
      ],
      "author": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Wed Dec 09 12:54:43 2020 +0900"
      },
      "committer": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Wed Dec 09 12:54:43 2020 +0900"
      },
      "message": "scd:ccid:spr532: Extend abort_cmd for initialization time.\n\n* scd/ccid-driver.c (abort_cmd): Add INIT argument to support\nsynchronize until success, even ignoring timeout.\n(bulk_in): Normal use case of abort_cmd.\n(ccid_vendor_specific_init): Initial use case of abort_cmd.\n\nSigned-off-by: NIIBE Yutaka \u003cgniibe@fsij.org\u003e\n"
    },
    {
      "commit": "f50373027222f28ab9d37843178a5d44cc1e3cc0",
      "tree": "8faea34c439553e5dabe48137e6fb48c499bfaff",
      "parents": [
        "ffabc29d5eadfe81b9f62b7d4fe6e858b191354d"
      ],
      "author": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Wed Dec 09 12:52:08 2020 +0900"
      },
      "committer": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Wed Dec 09 12:52:08 2020 +0900"
      },
      "message": "scd:ccid: Call libusb_clear_halt in ccid_vendor_specific_setup.\n\n* scd/ccid-driver.c (ccid_vendor_specific_setup): Only for SPR532,\ncall libusb_clear_halt.\n\n--\n\nGnuPG-bug-id: 5167\nSigned-off-by: NIIBE Yutaka \u003cgniibe@fsij.org\u003e\n"
    },
    {
      "commit": "ffabc29d5eadfe81b9f62b7d4fe6e858b191354d",
      "tree": "e0d7d4332b331138c4b0309ee88fdde1fe20d10a",
      "parents": [
        "946555ea3ceb823b95ed13654ae4fd667daa4337"
      ],
      "author": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Wed Dec 09 12:40:47 2020 +0900"
      },
      "committer": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Wed Dec 09 12:40:47 2020 +0900"
      },
      "message": "scd:ccid: Revert the addition of libusb_clear_halt for EP_INTR.\n\n* scd/ccid-driver.c (ccid_setup_intr): Don\u0027t call libusb_clear_halt.\n\n--\n\nGnuPG-bug-id: 5167\nSigned-off-by: NIIBE Yutaka \u003cgniibe@fsij.org\u003e\n"
    },
    {
      "commit": "946555ea3ceb823b95ed13654ae4fd667daa4337",
      "tree": "05de9a59cd9e2733fb3add581d0d18e952a1aa65",
      "parents": [
        "eda3c688fc2e85c7cd63029cb9caf06552d203b4"
      ],
      "author": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Tue Dec 08 17:45:18 2020 +0900"
      },
      "committer": {
        "name": "NIIBE Yutaka",
        "email": "gniibe@fsij.org",
        "time": "Tue Dec 08 17:45:18 2020 +0900"
      },
      "message": "scd:yubikey: Fix support of Yubikey NEO.\n\n* scd/app-openpgp.c (get_public_key): Yubikey NEO also has this issue.\n\nSigned-off-by: NIIBE Yutaka \u003cgniibe@fsij.org\u003e\n"
    }
  ],
  "next": "eda3c688fc2e85c7cd63029cb9caf06552d203b4"
}
