1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4927 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 5112 5113 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 5285 5286 5287 5288 5289 5290 5291 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 5306 5307 5308 5309 5310 5311 5312 5313 5314 5315 5316 5317 5318 5319 5320 5321 5322 5323 5324 5325 5326 5327 5328 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 5347 5348 5349 5350 5351 5352 5353 5354 5355 5356 5357 5358 5359 5360 5361 5362 5363 5364 5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375 5376 5377 5378 5379 5380 5381 5382 5383 5384 5385 5386 5387 5388 5389 5390 5391 5392 5393 5394 5395 5396 5397 5398 5399 5400 5401 5402 5403 5404 5405 5406 5407 5408 5409 5410 5411 5412 5413 5414 5415 5416 5417 5418 5419 5420 5421 5422 5423 5424 5425 5426 5427 5428 5429 5430 5431 5432 5433 5434 5435 5436 5437 5438 5439 5440 5441 5442 5443 5444 5445 5446 5447 5448 5449 5450 5451 5452 5453 5454 5455 5456 5457 5458 5459 5460 5461 5462 5463 5464 5465 5466 5467 5468 5469 5470 5471 5472 5473 5474 5475 5476 5477 5478 5479 5480 5481 5482 5483 5484 5485 5486 5487 5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 5498 5499 5500 5501 5502 5503 5504 5505 5506 5507 5508 5509 5510 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529 5530 5531 5532 5533 5534 5535 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 5553 5554 5555 5556 5557 5558 5559 5560 5561 5562 5563 5564 5565 5566 5567 5568 5569 5570 5571 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 5585 5586 5587 5588 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 5617 5618 5619 5620 5621 5622 5623 5624 5625 5626 5627 5628 5629 5630 5631 5632 5633 5634 5635 5636 5637 5638 5639 5640 5641 5642 5643 5644 5645 5646 5647 5648 5649 5650 5651 5652 5653 5654 5655 5656 5657 5658 5659 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 5678 5679 5680 5681 5682 5683 5684 5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706 5707 5708 5709 5710 5711 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731 5732 5733 5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755 5756 5757 5758 5759 5760 5761 5762 5763 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780 5781 5782 5783 5784 5785 5786 5787 5788 5789 5790 5791 5792 5793 5794 5795 5796 5797 5798 5799 5800 5801 5802 5803 5804 5805 5806 5807 5808 5809 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 5839 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5887 5888 5889 5890 5891 5892 5893 5894 5895 5896 5897 5898 5899 5900 5901 5902 5903 5904 5905 5906 5907 5908 5909 5910 5911 5912 5913 5914 5915 5916 5917 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5929 5930 5931 5932 5933 5934 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5947 5948 5949 5950 5951 5952 5953 5954 5955 5956 5957 5958 5959 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 6019 6020 6021 6022 6023 6024 6025 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 6043 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6055 6056 6057 6058 6059 6060 6061 6062 6063 6064 6065 6066 6067 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078 6079 6080 6081 6082 6083 6084 6085 6086 6087 6088 6089 6090 6091 6092 6093 6094 6095 6096 6097 6098 6099 6100 6101 6102 6103 6104 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6115 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 6128 6129 6130 6131 6132 6133 6134 6135 6136 6137 6138 6139 6140 6141 6142 6143 6144 6145 6146 6147 6148 6149 6150 6151 6152 6153 6154 6155 6156 6157 6158 6159 6160 6161 6162 6163 6164 6165 6166 6167 6168 6169 6170 6171 6172 6173 6174 6175 6176 6177 6178 6179 6180 6181 6182 6183 6184 6185 6186 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197 6198 6199 6200 6201 6202 6203 6204 6205 6206 6207 6208 6209 6210 6211 6212 6213 6214 6215 6216 6217 6218 6219 6220 6221 6222 6223 6224 6225 6226 6227 6228 6229 6230 6231 6232 6233 6234 6235 6236 6237 6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 6248 6249 6250 6251 6252 6253 6254 6255 6256 6257 6258 6259 6260 6261 6262 6263 6264 6265 6266 6267 6268 6269 6270 6271 6272 6273 6274 6275 6276 6277 6278 6279 6280 6281 6282 6283 6284 6285 6286 6287 6288 6289 6290 6291 6292 6293 6294 6295 6296 6297 6298 6299 6300 6301 6302 6303 6304 6305 6306 6307 6308 6309 6310 6311 6312 6313 6314 6315 6316 6317 6318 6319 6320 6321 6322 6323 6324 6325 6326 6327 6328 6329 6330 6331 6332 6333 6334 6335 6336 6337 6338 6339 6340 6341 6342 6343 6344 6345 6346 6347 6348 6349 6350 6351 6352 6353 6354 6355 6356 6357 6358 6359 6360 6361 6362 6363 6364 6365 6366 6367 6368 6369 6370 6371 6372 6373 6374 6375 6376 6377 6378 6379 6380 6381 6382 6383 6384 6385 6386 6387 6388 6389 6390 6391 6392 6393 6394 6395 6396 6397 6398 6399 6400 6401 6402 6403 6404 6405 6406 6407 6408 6409 6410 6411 6412 6413 6414 6415 6416 6417 6418 6419 6420 6421 6422 6423 6424 6425 6426 6427 6428 6429 6430 6431 6432 6433 6434 6435 6436 6437 6438 6439 6440 6441 6442 6443 6444 6445 6446 6447 6448 6449 6450 6451 6452 6453 6454 6455 6456 6457 6458 6459 6460 6461 6462 6463 6464 6465 6466 6467 6468 6469 6470 6471 6472 6473 6474 6475 6476 6477 6478 6479 6480 6481 6482 6483 6484 6485 6486 6487 6488 6489 6490 6491 6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6505 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 6518 6519 6520 6521 6522 6523 6524 6525 6526 6527 6528 6529 6530 6531 6532 6533 6534 6535 6536 6537 6538 6539 6540 6541 6542 6543 6544 6545 6546 6547 6548 6549 6550 6551 6552 6553 6554 6555 6556 6557 6558 6559 6560 6561 6562 6563 6564 6565 6566 6567 6568 6569 6570 6571 6572 6573 6574 6575 6576 6577 6578 6579 6580 6581 6582 6583 6584 6585 6586 6587 6588 6589 6590 6591 6592 6593 6594 6595 6596 6597 6598 6599 6600 6601 6602 6603 6604 6605 6606 6607 6608 6609 6610 6611 6612 6613 6614 6615 6616 6617 6618 6619 6620 6621 6622 6623 6624 6625 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 6637 6638 6639 6640 6641 6642 6643 6644 6645 6646 6647 6648 6649 6650 6651 6652 6653 6654 6655 6656 6657 6658 6659 6660 6661 6662 6663 6664 6665 6666 6667 6668 6669 6670 6671 6672 6673 6674 6675 6676 6677 6678 6679 6680 6681 6682 6683 6684 6685 6686 6687 6688 6689 6690 6691 6692 6693 6694 6695 6696 6697 6698 6699 6700 6701 6702 6703 6704 6705 6706 6707 6708 6709 6710 6711 6712 6713 6714 6715 6716 6717 6718 6719 6720 6721 6722 6723 6724 6725 6726 6727 6728 6729 6730 6731 6732 6733 6734 6735 6736 6737 6738 6739 6740 6741 6742 6743 6744 6745 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 6757 6758 6759 6760 6761 6762 6763 6764 6765 6766 6767 6768 6769 6770 6771 6772 6773 6774 6775 6776 6777 6778 6779 6780 6781 6782 6783 6784 6785 6786 6787 6788 6789 6790 6791 6792 6793 6794 6795 6796 6797 6798 6799 6800 6801 6802 6803 6804 6805 6806 6807 6808 6809 6810 6811 6812 6813 6814 6815 6816 6817 6818 6819 6820 6821 6822 6823 6824 6825 6826 6827 6828 6829 6830 6831 6832 6833 6834 6835 6836 6837 6838 6839 6840 6841 6842 6843 6844 6845 6846 6847 6848 6849 6850 6851 6852 6853 6854 6855 6856 6857 6858 6859 6860 6861 6862 6863 6864 6865 6866 6867 6868 6869 6870 6871 6872 6873 6874 6875 6876 6877 6878 6879 6880 6881 6882 6883 6884 6885 6886 6887 6888 6889 6890 6891 6892 6893 6894 6895 6896 6897 6898 6899 6900 6901 6902 6903 6904 6905 6906 6907 6908 6909 6910 6911 6912 6913 6914 6915 6916 6917 6918 6919 6920 6921 6922 6923 6924 6925 6926 6927 6928 6929 6930 6931 6932 6933 6934 6935 6936 6937 6938 6939 6940 6941 6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6955 6956 6957 6958 6959 6960 6961 6962 6963 6964 6965 6966 6967 6968 6969 6970 6971 6972 6973 6974 6975 6976 6977 6978 6979 6980 6981 6982 6983 6984 6985 6986 6987 6988 6989 6990 6991 6992 6993 6994 6995 6996 6997 6998 6999 7000 7001 7002 7003 7004 7005 7006 7007 7008 7009 7010 7011 7012 7013 7014 7015 7016 7017 7018 7019 7020 7021 7022 7023 7024 7025 7026 7027 7028 7029 7030 7031 7032 7033 7034 7035 7036 7037 7038 7039 7040 7041 7042 7043 7044 7045 7046 7047 7048 7049 7050 7051 7052 7053 7054 7055 7056 7057 7058 7059 7060 7061 7062 7063 7064 7065 7066 7067 7068 7069 7070 7071 7072 7073 7074 7075 7076 7077 7078 7079 7080 7081 7082 7083 7084 7085 7086 7087 7088 7089 7090 7091 7092 7093 7094 7095 7096 7097 7098 7099 7100 7101 7102 7103 7104 7105 7106 7107 7108 7109 7110 7111 7112 7113 7114 7115 7116 7117 7118 7119 7120 7121 7122 7123 7124 7125 7126 7127 7128 7129 7130 7131 7132 7133 7134 7135 7136 7137 7138 7139 7140 7141 7142 7143 7144 7145 7146 7147 7148 7149 7150 7151 7152 7153 7154 7155 7156 7157 7158 7159 7160 7161 7162 7163 7164 7165 7166 7167 7168 7169 7170 7171 7172 7173 7174 7175 7176 7177 7178 7179 7180 7181 7182 7183 7184 7185 7186 7187 7188 7189 7190 7191 7192 7193 7194 7195 7196 7197 7198 7199 7200 7201 7202 7203 7204 7205 7206 7207 7208 7209 7210 7211 7212 7213 7214 7215 7216 7217 7218 7219 7220 7221 7222 7223 7224 7225 7226 7227 7228 7229 7230 7231 7232 7233 7234 7235 7236 7237 7238 7239 7240 7241 7242 7243 7244 7245 7246 7247 7248 7249 7250 7251 7252 7253 7254 7255 7256 7257 7258 7259 7260 7261 7262 7263 7264 7265 7266 7267 7268 7269 7270 7271 7272 7273 7274 7275 7276 7277 7278 7279 7280 7281 7282 7283 7284 7285 7286 7287 7288 7289 7290 7291 7292 7293 7294 7295 7296 7297 7298 7299 7300 7301 7302 7303 7304 7305 7306 7307 7308 7309 7310 7311 7312 7313 7314 7315 7316 7317 7318 7319 7320 7321 7322 7323 7324 7325 7326 7327 7328 7329 7330 7331 7332 7333 7334 7335 7336 7337 7338 7339 7340 7341 7342 7343 7344 7345 7346 7347 7348 7349 7350 7351 7352 7353 7354 7355 7356 7357 7358 7359 7360 7361 7362 7363 7364 7365 7366 7367 7368 7369 7370 7371 7372 7373 7374 7375 7376 7377 7378 7379 7380 7381 7382 7383 7384 7385 7386 7387 7388 7389 7390 7391 7392 7393 7394 7395 7396 7397 7398 7399 7400 7401 7402 7403 7404 7405 7406 7407 7408 7409 7410 7411 7412 7413 7414 7415 7416 7417 7418 7419 7420 7421 7422 7423 7424 7425 7426 7427 7428 7429 7430 7431 7432 7433 7434 7435 7436 7437 7438 7439 7440 7441 7442 7443 7444 7445 7446 7447 7448 7449 7450 7451 7452 7453 7454 7455 7456 7457 7458 7459 7460 7461 7462 7463 7464 7465 7466 7467 7468 7469 7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7481 7482 7483 7484 7485 7486 7487 7488 7489 7490 7491 7492 7493 7494 7495 7496 7497 7498 7499 7500 7501 7502 7503 7504 7505 7506 7507 7508 7509 7510 7511 7512 7513 7514 7515 7516 7517 7518 7519 7520 7521 7522 7523 7524 7525 7526 7527 7528 7529 7530 7531 7532 7533 7534 7535 7536 7537 7538 7539 7540 7541 7542 7543 7544 7545 7546 7547 7548 7549 7550 7551 7552 7553 7554 7555 7556 7557 7558 7559 7560 7561 7562 7563 7564 7565 7566 7567 7568 7569 7570 7571 7572 7573 7574 7575 7576 7577 7578 7579 7580 7581 7582 7583 7584 7585 7586 7587 7588 7589 7590 7591 7592 7593 7594 7595 7596 7597 7598 7599 7600 7601 7602 7603 7604 7605 7606 7607 7608 7609 7610 7611 7612 7613 7614 7615 7616 7617 7618 7619 7620 7621 7622 7623 7624 7625 7626 7627 7628 7629 7630 7631 7632 7633 7634 7635 7636 7637 7638 7639 7640 7641 7642 7643 7644 7645 7646 7647 7648 7649 7650 7651 7652 7653 7654 7655 7656 7657 7658 7659 7660 7661 7662 7663 7664 7665 7666 7667 7668 7669 7670 7671 7672 7673 7674 7675 7676 7677 7678 7679 7680 7681 7682 7683 7684 7685 7686 7687 7688 7689 7690 7691 7692 7693 7694 7695 7696 7697 7698 7699 7700 7701 7702 7703 7704 7705 7706 7707 7708 7709 7710 7711 7712 7713 7714 7715 7716 7717 7718 7719 7720 7721 7722 7723 7724 7725 7726 7727 7728 7729 7730 7731 7732 7733 7734 7735 7736 7737 7738 7739 7740 7741 7742 7743 7744 7745 7746 7747 7748 7749 7750 7751 7752 7753 7754 7755 7756 7757 7758 7759 7760 7761 7762 7763 7764 7765 7766 7767 7768 7769 7770 7771 7772 7773 7774 7775 7776 7777 7778 7779 7780 7781 7782 7783 7784 7785 7786 7787 7788 7789 7790 7791 7792 7793 7794 7795 7796 7797 7798 7799 7800 7801 7802 7803 7804 7805 7806 7807 7808 7809 7810 7811 7812 7813 7814 7815 7816 7817 7818 7819 7820 7821 7822 7823 7824 7825 7826 7827 7828 7829 7830 7831 7832 7833 7834 7835 7836 7837 7838 7839 7840 7841 7842 7843 7844 7845 7846 7847 7848 7849 7850 7851 7852 7853 7854 7855 7856 7857 7858 7859 7860 7861 7862 7863 7864 7865 7866 7867 7868 7869 7870 7871 7872 7873 7874 7875 7876 7877 7878 7879 7880 7881 7882 7883 7884 7885 7886 7887 7888 7889 7890 7891 7892 7893 7894 7895 7896 7897 7898 7899 7900 7901 7902 7903 7904 7905 7906 7907 7908 7909 7910 7911 7912 7913 7914 7915 7916 7917 7918 7919 7920 7921 7922 7923 7924 7925 7926 7927 7928 7929 7930 7931 7932 7933 7934 7935 7936 7937 7938 7939 7940 7941 7942 7943 7944 7945 7946 7947 7948 7949 7950 7951 7952 7953 7954 7955 7956 7957 7958 7959 7960 7961 7962 7963 7964 7965 7966 7967 7968 7969 7970 7971 7972 7973 7974 7975 7976 7977 7978 7979 7980 7981 7982 7983 7984 7985 7986 7987 7988 7989 7990 7991 7992 7993 7994 7995 7996 7997 7998 7999 8000 8001 8002 8003 8004 8005 8006 8007 8008 8009 8010 8011 8012 8013 8014 8015 8016 8017 8018 8019 8020 8021 8022 8023 8024 8025 8026 8027 8028 8029 8030 8031 8032 8033 8034 8035 8036 8037 8038 8039 8040 8041 8042 8043 8044 8045 8046 8047 8048 8049 8050 8051 8052 8053 8054 8055 8056 8057 8058 8059 8060 8061 8062 8063 8064 8065 8066 8067 8068 8069 8070 8071 8072 8073 8074 8075 8076 8077 8078 8079 8080 8081 8082 8083 8084 8085 8086 8087 8088 8089 8090 8091 8092 8093 8094 8095 8096 8097 8098 8099 8100 8101 8102 8103 8104 8105 8106 8107 8108 8109 8110 8111 8112 8113 8114 8115 8116 8117 8118 8119 8120 8121 8122 8123 8124 8125 8126 8127 8128 8129 8130 8131 8132 8133 8134 8135 8136 8137 8138 8139 8140 8141 8142 8143 8144 8145 8146 8147 8148 8149 8150 8151 8152 8153 8154 8155 8156 8157 8158 8159 8160 8161 8162 8163 8164 8165 8166 8167 8168 8169 8170 8171 8172 8173 8174 8175 8176 8177 8178 8179 8180 8181 8182 8183 8184 8185 8186 8187 8188 8189 8190 8191 8192 8193 8194 8195 8196 8197 8198 8199 8200 8201 8202 8203 8204 8205 8206 8207 8208 8209 8210 8211 8212 8213 8214 8215 8216 8217 8218 8219 8220 8221 8222 8223 8224 8225 8226 8227 8228 8229 8230 8231 8232 8233 8234 8235 8236 8237 8238 8239 8240 8241 8242 8243 8244 8245 8246 8247 8248 8249 8250 8251 8252 8253 8254 8255 8256 8257 8258 8259 8260 8261 8262 8263 8264 8265 8266 8267 8268 8269 8270 8271 8272 8273 8274 8275 8276 8277 8278 8279 8280 8281 8282 8283 8284 8285 8286 8287 8288 8289 8290 8291 8292 8293 8294 8295 8296 8297 8298 8299 8300 8301 8302 8303 8304 8305 8306 8307 8308 8309 8310 8311 8312 8313 8314 8315 8316 8317 8318 8319 8320 8321 8322 8323 8324 8325 8326 8327 8328 8329 8330 8331 8332 8333 8334 8335 8336 8337 8338 8339 8340 8341 8342 8343 8344 8345 8346 8347 8348 8349 8350 8351 8352 8353 8354 8355 8356 8357 8358 8359 8360 8361 8362 8363 8364 8365 8366 8367 8368 8369 8370 8371 8372 8373 8374 8375 8376 8377 8378 8379 8380 8381 8382 8383 8384 8385 8386 8387 8388 8389 8390 8391 8392 8393 8394 8395 8396 8397 8398 8399 8400 8401 8402 8403 8404 8405 8406 8407 8408 8409 8410 8411 8412 8413 8414 8415 8416 8417 8418 8419 8420 8421 8422 8423 8424 8425 8426 8427 8428 8429 8430 8431 8432 8433 8434 8435 8436 8437 8438 8439 8440 8441 8442 8443 8444 8445 8446 8447 8448 8449 8450 8451 8452 8453 8454 8455 8456 8457 8458 8459 8460 8461 8462 8463 8464 8465 8466 8467 8468 8469 8470 8471 8472 8473 8474 8475 8476 8477 8478 8479 8480 8481 8482 8483 8484 8485 8486 8487 8488 8489 8490 8491 8492 8493 8494 8495 8496 8497 8498 8499 8500 8501 8502 8503 8504 8505 8506 8507 8508 8509 8510 8511 8512 8513 8514 8515 8516 8517 8518 8519 8520 8521 8522 8523 8524 8525 8526 8527 8528 8529 8530 8531 8532 8533 8534 8535 8536 8537 8538 8539 8540 8541 8542 8543 8544 8545 8546 8547 8548 8549 8550 8551 8552 8553 8554 8555 8556 8557 8558 8559 8560 8561 8562 8563 8564 8565 8566 8567 8568 8569 8570 8571 8572 8573 8574 8575 8576 8577 8578 8579 8580 8581 8582 8583 8584 8585 8586 8587 8588 8589 8590 8591 8592 8593 8594 8595 8596 8597 8598 8599 8600 8601 8602 8603 8604 8605 8606 8607 8608 8609 8610 8611 8612 8613 8614 8615 8616 8617 8618 8619 8620 8621 8622 8623 8624 8625 8626 8627 8628 8629 8630 8631 8632 8633 8634 8635 8636 8637 8638 8639 8640 8641 8642 8643 8644 8645 8646 8647 8648 8649 8650 8651 8652 8653 8654 8655 8656 8657 8658 8659 8660 8661 8662 8663 8664 8665 8666 8667 8668 8669 8670 8671 8672 8673 8674 8675 8676 8677 8678 8679 8680 8681 8682 8683 8684 8685 8686 8687 8688 8689 8690 8691 8692 8693 8694 8695 8696 8697 8698 8699 8700 8701 8702 8703 8704 8705 8706 8707 8708 8709 8710 8711 8712 8713 8714 8715 8716 8717 8718 8719 8720 8721 8722 8723 8724 8725 8726 8727 8728 8729 8730 8731 8732 8733 8734 8735 8736 8737 8738 8739 8740 8741 8742 8743 8744 8745 8746 8747 8748 8749 8750 8751 8752 8753 8754 8755 8756 8757 8758 8759 8760 8761 8762 8763 8764 8765 8766 8767 8768 8769 8770 8771 8772 8773 8774 8775 8776 8777 8778 8779 8780 8781 8782 8783 8784 8785 8786 8787 8788 8789 8790 8791 8792 8793 8794 8795 8796 8797 8798 8799 8800 8801 8802 8803 8804 8805 8806 8807 8808 8809 8810 8811 8812 8813 8814 8815 8816 8817 8818 8819 8820 8821 8822 8823 8824 8825 8826 8827 8828 8829 8830 8831 8832 8833 8834 8835 8836 8837 8838 8839 8840 8841 8842 8843 8844 8845 8846 8847 8848 8849 8850 8851 8852 8853 8854 8855 8856 8857 8858 8859 8860 8861 8862 8863 8864 8865 8866 8867 8868 8869 8870 8871 8872 8873 8874 8875 8876 8877 8878 8879 8880 8881 8882 8883 8884 8885 8886 8887 8888 8889 8890 8891 8892 8893 8894 8895 8896 8897 8898 8899 8900 8901 8902 8903 8904 8905 8906 8907 8908 8909 8910 8911 8912 8913 8914 8915 8916 8917 8918 8919 8920 8921 8922 8923 8924 8925 8926 8927 8928 8929 8930 8931 8932 8933 8934 8935 8936 8937 8938 8939 8940 8941 8942 8943 8944 8945 8946 8947 8948 8949 8950 8951 8952 8953 8954 8955 8956 8957 8958 8959 8960 8961 8962 8963 8964 8965 8966 8967 8968 8969 8970 8971 8972 8973 8974 8975 8976 8977 8978 8979 8980 8981 8982 8983 8984 8985 8986 8987 8988 8989 8990 8991 8992 8993 8994 8995 8996 8997 8998 8999 9000 9001 9002 9003 9004 9005 9006 9007 9008 9009 9010 9011 9012 9013 9014 9015 9016 9017 9018 9019 9020 9021 9022 9023 9024 9025 9026 9027 9028 9029 9030 9031 9032 9033 9034 9035 9036 9037 9038 9039 9040 9041 9042 9043 9044 9045 9046 9047 9048 9049 9050 9051 9052 9053 9054 9055 9056 9057 9058 9059 9060 9061 9062 9063 9064 9065 9066 9067 9068 9069 9070 9071 9072 9073 9074 9075 9076 9077 9078 9079 9080 9081 9082 9083 9084 9085 9086 9087 9088 9089 9090 9091 9092 9093 9094 9095 9096 9097 9098 9099 9100 9101 9102 9103 9104 9105 9106 9107 9108 9109 9110 9111 9112 9113 9114 9115 9116 9117 9118 9119 9120 9121 9122 9123 9124 9125 9126 9127 9128 9129 9130 9131 9132 9133 9134 9135 9136 9137 9138 9139 9140 9141 9142 9143 9144 9145 9146 9147 9148 9149 9150 9151 9152 9153 9154 9155 9156 9157 9158 9159 9160 9161 9162 9163 9164 9165 9166 9167 9168 9169 9170 9171 9172 9173 9174 9175 9176 9177 9178 9179 9180 9181 9182 9183 9184 9185 9186 9187 9188 9189 9190 9191 9192 9193 9194 9195 9196 9197 9198 9199 9200 9201 9202 9203 9204 9205 9206 9207 9208 9209 9210 9211 9212 9213 9214 9215 9216 9217 9218 9219 9220 9221 9222 9223 9224 9225 9226 9227 9228 9229 9230 9231 9232 9233 9234 9235 9236 9237 9238 9239 9240 9241 9242 9243 9244 9245 9246 9247 9248 9249 9250 9251 9252 9253 9254 9255 9256 9257 9258 9259 9260 9261 9262 9263 9264 9265 9266 9267 9268 9269 9270 9271 9272 9273 9274 9275 9276 9277 9278 9279 9280 9281 9282 9283 9284 9285 9286 9287 9288 9289 9290 9291 9292 9293 9294 9295 9296 9297 9298 9299 9300 9301 9302 9303 9304 9305 9306 9307 9308 9309 9310 9311 9312 9313 9314 9315 9316 9317 9318 9319 9320 9321 9322 9323 9324 9325 9326 9327 9328 9329 9330 9331 9332 9333 9334 9335 9336 9337 9338 9339 9340 9341 9342 9343 9344 9345 9346 9347 9348 9349 9350 9351 9352 9353 9354 9355 9356 9357 9358 9359 9360 9361 9362 9363 9364 9365 9366 9367 9368 9369 9370 9371 9372 9373 9374 9375 9376 9377 9378 9379 9380 9381 9382 9383 9384 9385 9386 9387 9388 9389 9390 9391 9392 9393 9394 9395 9396 9397 9398 9399 9400 9401 9402 9403 9404 9405 9406 9407 9408 9409 9410 9411 9412 9413 9414 9415 9416 9417 9418 9419 9420 9421 9422 9423 9424 9425 9426 9427 9428 9429 9430 9431 9432 9433 9434 9435 9436 9437 9438 9439 9440 9441 9442 9443 9444 9445 9446 9447 9448 9449 9450 9451 9452 9453 9454 9455 9456 9457 9458 9459 9460 9461 9462 9463 9464 9465 9466 9467 9468 9469 9470 9471 9472 9473 9474 9475 9476 9477 9478 9479 9480 9481 9482 9483 9484 9485 9486 9487 9488 9489 9490 9491 9492 9493 9494 9495 9496 9497 9498 9499 9500 9501 9502 9503 9504 9505 9506 9507 9508 9509 9510 9511 9512 9513 9514 9515 9516 9517 9518 9519 9520 9521 9522 9523 9524 9525 9526 9527 9528 9529 9530 9531 9532 9533 9534 9535 9536 9537 9538 9539 9540 9541 9542 9543 9544 9545 9546 9547 9548 9549 9550 9551 9552 9553 9554 9555 9556 9557 9558 9559 9560 9561 9562 9563 9564 9565 9566 9567 9568 9569 9570 9571 9572 9573 9574 9575 9576 9577 9578 9579 9580 9581 9582 9583 9584 9585 9586 9587 9588 9589 9590 9591 9592 9593 9594 9595 9596 9597 9598 9599 9600 9601 9602 9603 9604 9605 9606 9607 9608 9609 9610 9611 9612 9613 9614 9615 9616 9617 9618 9619 9620 9621 9622 9623 9624 9625 9626 9627 9628 9629 9630 9631 9632 9633 9634 9635 9636 9637 9638 9639 9640 9641 9642 9643 9644 9645 9646 9647 9648 9649 9650 9651 9652 9653 9654 9655 9656 9657 9658 9659 9660 9661 9662 9663 9664 9665 9666 9667 9668 9669 9670 9671 9672 9673 9674 9675 9676 9677 9678 9679 9680 9681 9682 9683 9684 9685 9686 9687 9688 9689 9690 9691 9692 9693 9694 9695 9696 9697 9698 9699 9700 9701 9702 9703 9704 9705 9706 9707 9708 9709 9710 9711 9712 9713 9714 9715 9716 9717 9718 9719 9720 9721 9722 9723 9724 9725 9726 9727 9728 9729 9730 9731 9732 9733 9734 9735 9736 9737 9738 9739 9740 9741 9742 9743 9744 9745 9746 9747 9748 9749 9750 9751 9752 9753 9754 9755 9756 9757 9758 9759 9760 9761 9762 9763 9764 9765 9766 9767 9768 9769 9770 9771 9772 9773 9774 9775 9776 9777 9778 9779 9780 9781 9782 9783 9784 9785 9786 9787 9788 9789 9790 9791 9792 9793 9794 9795 9796 9797 9798 9799 9800 9801 9802 9803 9804 9805 9806 9807 9808 9809 9810 9811 9812 9813 9814 9815 9816 9817 9818 9819 9820 9821 9822 9823 9824 9825 9826 9827 9828 9829 9830 9831 9832 9833 9834 9835 9836 9837 9838 9839 9840 9841 9842 9843 9844 9845 9846 9847 9848 9849 9850 9851 9852 9853 9854 9855 9856 9857 9858 9859 9860 9861 9862 9863 9864 9865 9866 9867 9868 9869 9870 9871 9872 9873 9874 9875 9876 9877 9878 9879 9880 9881 9882 9883 9884 9885 9886 9887 9888 9889 9890 9891 9892 9893 9894 9895 9896 9897 9898 9899 9900 9901 9902 9903 9904 9905 9906 9907 9908 9909 9910 9911 9912 9913 9914 9915 9916 9917 9918 9919 9920 9921 9922 9923 9924 9925 9926 9927 9928 9929 9930 9931 9932 9933 9934 9935 9936 9937 9938 9939 9940 9941 9942 9943 9944 9945 9946 9947 9948 9949 9950 9951 9952 9953 9954 9955 9956 9957 9958 9959 9960 9961 9962 9963 9964 9965 9966 9967 9968 9969 9970 9971 9972 9973 9974 9975 9976 9977 9978 9979 9980 9981 9982 9983 9984 9985 9986 9987 9988 9989 9990 9991 9992 9993 9994 9995 9996 9997 9998 9999 10000 10001 10002 10003 10004 10005 10006 10007 10008 10009 10010 10011 10012 10013 10014 10015 10016 10017 10018 10019 10020 10021 10022 10023 10024 10025 10026 10027 10028 10029 10030 10031 10032 10033 10034 10035 10036 10037 10038 10039 10040 10041 10042 10043 10044 10045 10046 10047 10048 10049 10050 10051 10052 10053 10054 10055 10056 10057 10058 10059 10060 10061 10062 10063 10064 10065 10066 10067 10068 10069 10070 10071 10072 10073 10074 10075 10076 10077 10078 10079 10080 10081 10082 10083 10084 10085 10086 10087 10088 10089 10090 10091 10092 10093 10094 10095 10096 10097 10098 10099 10100 10101 10102 10103 10104 10105 10106 10107 10108 10109 10110 10111 10112 10113 10114 10115 10116 10117 10118 10119 10120 10121 10122 10123 10124 10125 10126 10127 10128 10129 10130 10131 10132 10133 10134 10135 10136 10137 10138 10139 10140 10141 10142 10143 10144 10145 10146 10147 10148 10149 10150 10151 10152 10153 10154 10155 10156 10157 10158 10159 10160 10161 10162 10163 10164 10165 10166 10167 10168 10169 10170 10171 10172 10173 10174 10175 10176 10177 10178 10179 10180 10181 10182 10183 10184 10185 10186 10187 10188 10189 10190 10191 10192 10193 10194 10195 10196 10197 10198 10199 10200 10201 10202 10203 10204 10205 10206 10207 10208 10209 10210 10211 10212 10213 10214 10215 10216 10217 10218 10219 10220 10221 10222 10223 10224 10225 10226 10227 10228 10229 10230 10231 10232 10233 10234 10235 10236 10237 10238 10239 10240 10241 10242 10243 10244 10245 10246 10247 10248 10249 10250 10251 10252 10253 10254 10255 10256 10257 10258 10259 10260 10261 10262 10263 10264 10265 10266 10267 10268 10269 10270 10271 10272 10273 10274 10275 10276 10277 10278 10279 10280 10281 10282 10283 10284 10285 10286 10287 10288 10289 10290 10291 10292 10293 10294 10295 10296 10297 10298 10299 10300 10301 10302 10303 10304 10305 10306 10307 10308 10309 10310 10311 10312 10313 10314 10315 10316 10317 10318 10319 10320 10321 10322 10323 10324 10325 10326 10327 10328 10329 10330 10331 10332 10333 10334 10335 10336 10337 10338 10339 10340 10341 10342 10343 10344 10345 10346 10347 10348 10349 10350 10351 10352 10353 10354 10355 10356 10357 10358 10359 10360 10361 10362 10363 10364 10365 10366 10367 10368 10369 10370 10371 10372 10373 10374 10375 10376 10377 10378 10379 10380 10381 10382 10383 10384 10385 10386 10387 10388 10389 10390 10391 10392 10393 10394 10395 10396 10397 10398 10399 10400 10401 10402 10403 10404 10405 10406 10407 10408 10409 10410 10411 10412 10413 10414 10415 10416 10417 10418 10419 10420 10421 10422 10423 10424 10425 10426 10427 10428 10429 10430 10431 10432 10433 10434 10435 10436 10437 10438 10439 10440 10441 10442 10443 10444 10445 10446 10447 10448 10449 10450 10451 10452 10453 10454 10455 10456 10457 10458 10459 10460 10461 10462 10463 10464 10465 10466 10467 10468 10469 10470 10471 10472 10473 10474 10475 10476 10477 10478 10479 10480 10481 10482 10483 10484 10485 10486 10487 10488 10489 10490 10491 10492 10493 10494 10495 10496 10497 10498 10499 10500 10501 10502 10503 10504 10505 10506 10507 10508 10509 10510 10511 10512 10513 10514 10515 10516 10517 10518 10519 10520 10521 10522 10523 10524 10525 10526 10527 10528 10529 10530 10531 10532 10533 10534 10535 10536 10537 10538 10539 10540 10541 10542 10543 10544 10545 10546 10547 10548 10549 10550 10551 10552 10553 10554 10555 10556 10557 10558 10559 10560 10561 10562 10563 10564 10565 10566 10567 10568 10569 10570 10571 10572 10573 10574 10575 10576 10577 10578 10579 10580 10581 10582 10583 10584 10585 10586 10587 10588 10589 10590 10591 10592 10593 10594 10595 10596 10597 10598 10599 10600 10601 10602 10603 10604 10605 10606 10607 10608 10609 10610 10611 10612 10613 10614 10615 10616 10617 10618 10619 10620 10621 10622 10623 10624 10625 10626 10627 10628 10629 10630 10631 10632 10633 10634 10635 10636 10637 10638 10639 10640 10641 10642 10643 10644 10645 10646 10647 10648 10649 10650 10651 10652 10653 10654 10655 10656 10657 10658 10659 10660 10661 10662 10663 10664 10665 10666 10667 10668 10669 10670 10671 10672 10673 10674 10675 10676 10677 10678 10679 10680 10681 10682 10683 10684 10685 10686 10687 10688 10689 10690 10691 10692 10693 10694 10695 10696 10697 10698 10699 10700 10701 10702 10703 10704 10705 10706 10707 10708 10709 10710 10711 10712 10713 10714 10715 10716 10717 10718 10719 10720 10721 10722 10723 10724 10725 10726 10727 10728 10729 10730 10731 10732 10733 10734 10735 10736 10737 10738 10739 10740 10741 10742 10743 10744 10745 10746 10747 10748 10749 10750 10751 10752 10753 10754 10755 10756 10757 10758 10759 10760 10761 10762 10763 10764 10765 10766 10767 10768 10769 10770 10771 10772 10773 10774 10775 10776 10777 10778 10779 10780 10781 10782 10783 10784 10785 10786 10787 10788 10789 10790 10791 10792 10793 10794 10795 10796 10797 10798 10799 10800 10801 10802 10803 10804 10805 10806 10807 10808 10809 10810 10811 10812 10813 10814 10815 10816 10817 10818 10819 10820 10821 10822 10823 10824 10825 10826 10827 10828 10829 10830 10831 10832 10833 10834 10835 10836 10837 10838 10839 10840 10841 10842 10843 10844 10845 10846 10847 10848 10849 10850 10851 10852 10853 10854 10855 10856 10857 10858 10859 10860 10861 10862 10863 10864 10865 10866 10867 10868 10869 10870 10871 10872 10873 10874 10875 10876 10877 10878 10879 10880 10881 10882 10883 10884 10885 10886 10887 10888 10889 10890 10891 10892 10893 10894 10895 10896 10897 10898 10899 10900 10901 10902 10903 10904 10905 10906 10907 10908 10909 10910 10911 10912 10913 10914 10915 10916 10917 10918 10919 10920 10921 10922 10923 10924 10925 10926 10927 10928 10929 10930 10931 10932 10933 10934 10935 10936 10937 10938 10939 10940 10941 10942 10943 10944 10945 10946 10947 10948 10949 10950 10951 10952 10953 10954 10955 10956 10957 10958 10959 10960 10961 10962 10963 10964 10965 10966 10967 10968 10969 10970 10971 10972 10973 10974 10975 10976 10977 10978 10979 10980 10981 10982 10983 10984 10985 10986 10987 10988 10989 10990 10991 10992 10993 10994 10995 10996 10997 10998 10999 11000 11001 11002 11003 11004 11005 11006 11007 11008 11009 11010 11011 11012 11013 11014 11015 11016 11017 11018 11019 11020 11021 11022 11023 11024 11025 11026 11027 11028 11029 11030 11031 11032 11033 11034 11035 11036 11037 11038 11039 11040 11041 11042 11043 11044 11045 11046 11047 11048 11049 11050 11051 11052 11053 11054 11055 11056 11057 11058 11059 11060 11061 11062 11063 11064 11065 11066 11067 11068 11069 11070 11071 11072 11073 11074 11075 11076 11077 11078 11079 11080 11081 11082 11083 11084 11085 11086 11087 11088 11089 11090 11091 11092 11093 11094 11095 11096 11097 11098 11099 11100 11101 11102 11103 11104 11105 11106 11107 11108 11109 11110 11111 11112 11113 11114 11115 11116 11117 11118 11119 11120 11121 11122 11123 11124 11125 11126 11127 11128 11129 11130 11131 11132 11133 11134 11135 11136 11137 11138 11139 11140 11141 11142 11143 11144 11145 11146 11147 11148 11149 11150 11151 11152 11153 11154 11155 11156 11157 11158 11159 11160 11161 11162 11163 11164 11165 11166 11167 11168 11169 11170 11171 11172 11173 11174 11175 11176 11177 11178 11179 11180 11181 11182 11183 11184 11185 11186 11187 11188 11189 11190 11191 11192 11193 11194 11195 11196 11197 11198 11199 11200 11201 11202 11203 11204 11205 11206 11207 11208 11209 11210 11211 11212 11213 11214 11215 11216 11217 11218 11219 11220 11221 11222 11223 11224 11225 11226 11227 11228 11229 11230 11231 11232 11233 11234 11235 11236 11237 11238 11239 11240 11241 11242 11243 11244 11245 11246 11247 11248 11249 11250 11251 11252 11253 11254 11255 11256 11257 11258 11259 11260 11261 11262 11263 11264 11265 11266 11267 11268 11269 11270 11271 11272 11273 11274 11275 11276 11277 11278 11279 11280 11281 11282 11283 11284 11285 11286 11287 11288 11289 11290 11291 11292 11293 11294 11295 11296 11297 11298 11299 11300 11301 11302 11303 11304 11305 11306 11307 11308 11309 11310 11311 11312 11313 11314 11315 11316 11317 11318 11319 11320 11321 11322 11323 11324 11325 11326 11327 11328 11329 11330 11331 11332 11333 11334 11335 11336 11337 11338 11339 11340 11341 11342 11343 11344 11345 11346 11347 11348 11349 11350 11351 11352 11353 11354 11355 11356 11357 11358 11359 11360 11361 11362 11363 11364 11365 11366 11367 11368 11369 11370 11371 11372 11373 11374 11375 11376 11377 11378 11379 11380 11381 11382 11383 11384 11385 11386 11387 11388 11389 11390 11391 11392 11393 11394 11395 11396 11397 11398 11399 11400 11401 11402 11403 11404 11405 11406 11407 11408 11409 11410 11411 11412 11413 11414 11415 11416 11417 11418 11419 11420 11421 11422 11423 11424 11425 11426 11427 11428 11429 11430 11431 11432 11433 11434 11435 11436 11437 11438 11439 11440 11441 11442 11443 11444 11445 11446 11447 11448 11449 11450 11451 11452 11453 11454 11455 11456 11457 11458 11459 11460 11461 11462 11463 11464 11465 11466 11467 11468 11469 11470 11471 11472 11473 11474 11475 11476 11477 11478 11479 11480 11481 11482 11483 11484 11485 11486 11487 11488 11489 11490 11491 11492 11493 11494 11495 11496 11497 11498 11499 11500 11501 11502 11503 11504 11505 11506 11507 11508 11509 11510 11511 11512 11513 11514 11515 11516 11517 11518 11519 11520 11521 11522 11523 11524 11525 11526 11527 11528 11529 11530 11531 11532 11533 11534 11535 11536 11537 11538 11539 11540 11541 11542 11543 11544 11545 11546 11547 11548 11549 11550 11551 11552 11553 11554 11555 11556 11557 11558 11559 11560 11561 11562 11563 11564 11565 11566 11567 11568 11569 11570 11571 11572 11573 11574 11575 11576 11577 11578 11579 11580 11581 11582 11583 11584 11585 11586 11587 11588 11589 11590 11591 11592 11593 11594 11595 11596 11597 11598 11599 11600 11601 11602 11603 11604 11605 11606 11607 11608 11609 11610 11611 11612 11613 11614 11615 11616 11617 11618 11619 11620 11621 11622 11623 11624 11625 11626 11627 11628 11629 11630 11631 11632 11633 11634 11635 11636 11637 11638 11639 11640 11641 11642 11643 11644 11645 11646 11647 11648 11649 11650 11651 11652 11653 11654 11655 11656 11657 11658 11659 11660 11661 11662 11663 11664 11665 11666 11667 11668 11669 11670 11671 11672 11673 11674 11675 11676 11677 11678 11679 11680 11681 11682 11683 11684 11685 11686 11687 11688 11689 11690 11691 11692 11693 11694 11695 11696 11697 11698 11699 11700 11701 11702 11703 11704 11705 11706 11707 11708 11709 11710 11711 11712 11713 11714 11715 11716 11717 11718 11719 11720 11721 11722 11723 11724 11725 11726 11727 11728 11729 11730 11731 11732 11733 11734 11735 11736 11737 11738 11739 11740 11741 11742 11743 11744 11745 11746 11747 11748 11749 11750 11751 11752 11753 11754 11755 11756 11757 11758 11759 11760 11761 11762 11763 11764 11765 11766 11767 11768 11769 11770 11771 11772 11773 11774 11775 11776 11777 11778 11779 11780 11781 11782 11783 11784 11785 11786 11787 11788 11789 11790 11791 11792 11793 11794 11795 11796 11797 11798 11799 11800 11801 11802 11803 11804 11805 11806 11807 11808 11809 11810 11811 11812 11813 11814 11815 11816 11817 11818 11819 11820 11821 11822 11823 11824 11825 11826 11827 11828 11829 11830 11831 11832 11833 11834 11835 11836 11837 11838 11839 11840 11841 11842 11843 11844 11845 11846 11847 11848 11849 11850 11851 11852 11853 11854 11855 11856 11857 11858 11859 11860 11861 11862 11863 11864 11865 11866 11867 11868 11869 11870 11871 11872 11873 11874 11875 11876 11877 11878 11879 11880 11881 11882 11883 11884 11885 11886 11887 11888 11889 11890 11891 11892 11893 11894 11895 11896 11897 11898 11899 11900 11901 11902 11903 11904 11905 11906 11907 11908 11909 11910 11911 11912 11913 11914 11915 11916 11917 11918 11919 11920 11921 11922 11923 11924 11925 11926 11927 11928 11929 11930 11931 11932 11933 11934 11935 11936 11937 11938 11939 11940 11941 11942 11943 11944 11945 11946 11947 11948 11949 11950 11951 11952 11953 11954 11955 11956 11957 11958 11959 11960 11961 11962 11963 11964 11965 11966 11967 11968 11969 11970 11971 11972 11973 11974 11975 11976 11977 11978 11979 11980 11981 11982 11983 11984 11985 11986 11987 11988 11989 11990 11991 11992 11993 11994 11995 11996 11997 11998 11999 12000 12001 12002 12003 12004 12005 12006 12007 12008 12009 12010 12011 12012 12013 12014 12015 12016 12017 12018 12019 12020 12021 12022 12023 12024 12025 12026 12027 12028 12029 12030 12031 12032 12033 12034 12035 12036 12037 12038 12039 12040 12041 12042 12043 12044 12045 12046 12047 12048 12049 12050 12051 12052 12053 12054 12055 12056 12057 12058 12059 12060 12061 12062 12063 12064 12065 12066 12067 12068 12069 12070 12071 12072 12073 12074 12075 12076 12077 12078 12079 12080 12081 12082 12083 12084 12085 12086 12087 12088 12089 12090 12091 12092 12093 12094 12095 12096 12097 12098 12099 12100 12101 12102 12103 12104 12105 12106 12107 12108 12109 12110 12111 12112 12113 12114 12115 12116 12117 12118 12119 12120 12121 12122 12123 12124 12125 12126 12127 12128 12129 12130 12131 12132 12133 12134 12135 12136 12137 12138 12139 12140 12141 12142 12143 12144 12145 12146 12147 12148 12149 12150 12151 12152 12153 12154 12155 12156 12157 12158 12159 12160 12161 12162 12163 12164 12165 12166 12167 12168 12169 12170 12171 12172 12173 12174 12175 12176 12177 12178 12179 12180 12181 12182 12183 12184 12185 12186 12187 12188 12189 12190 12191 12192 12193 12194 12195 12196 12197 12198 12199 12200 12201 12202 12203 12204 12205 12206 12207 12208 12209 12210 12211 12212 12213 12214 12215 12216 12217 12218 12219 12220 12221 12222 12223 12224 12225 12226 12227 12228 12229 12230 12231 12232 12233 12234 12235 12236 12237 12238 12239 12240 12241 12242 12243 12244 12245 12246 12247 12248 12249 12250 12251 12252 12253 12254 12255 12256 12257 12258 12259 12260 12261 12262 12263 12264 12265 12266 12267 12268 12269 12270 12271 12272 12273 12274 12275 12276 12277 12278 12279 12280 12281 12282 12283 12284 12285 12286 12287 12288 12289 12290 12291 12292 12293 12294 12295 12296 12297 12298 12299 12300 12301 12302 12303 12304 12305 12306 12307 12308 12309 12310 12311 12312 12313 12314 12315 12316 12317 12318 12319 12320 12321 12322 12323 12324 12325 12326 12327 12328 12329 12330 12331 12332 12333 12334 12335 12336 12337 12338 12339 12340 12341 12342 12343 12344 12345 12346 12347 12348 12349 12350 12351 12352 12353 12354 12355 12356 12357 12358 12359 12360 12361 12362 12363 12364 12365 12366 12367 12368 12369 12370 12371 12372 12373 12374 12375 12376 12377 12378 12379 12380 12381 12382 12383 12384 12385 12386 12387 12388 12389 12390 12391 12392 12393 12394 12395 12396 12397 12398 12399 12400 12401 12402 12403 12404 12405 12406 12407 12408 12409 12410 12411 12412 12413 12414 12415 12416 12417 12418 12419 12420 12421 12422 12423 12424 12425 12426 12427 12428 12429 12430 12431 12432 12433 12434 12435 12436 12437 12438 12439 12440 12441 12442 12443 12444 12445 12446 12447 12448 12449 12450 12451 12452 12453 12454 12455 12456 12457 12458 12459 12460 12461 12462 12463 12464 12465 12466 12467 12468 12469 12470 12471 12472 12473 12474 12475 12476 12477 12478 12479 12480 12481 12482 12483 12484 12485 12486 12487 12488 12489 12490 12491 12492 12493 12494 12495 12496 12497 12498 12499 12500 12501 12502 12503 12504 12505 12506 12507 12508 12509 12510 12511 12512 12513 12514 12515 12516 12517 12518 12519 12520 12521 12522 12523 12524 12525 12526 12527 12528 12529 12530 12531 12532 12533 12534 12535 12536 12537 12538 12539 12540 12541 12542 12543 12544 12545 12546 12547 12548 12549 12550 12551 12552 12553 12554 12555 12556 12557 12558 12559 12560 12561 12562 12563 12564 12565 12566 12567 12568 12569 12570 12571 12572 12573 12574 12575 12576 12577 12578 12579 12580 12581 12582 12583 12584 12585 12586 12587 12588 12589 12590 12591 12592 12593 12594 12595 12596 12597 12598 12599 12600 12601 12602 12603 12604 12605 12606 12607 12608 12609 12610 12611 12612 12613 12614 12615 12616 12617 12618 12619 12620 12621 12622 12623 12624 12625 12626 12627 12628 12629 12630 12631 12632 12633 12634 12635 12636 12637 12638 12639 12640 12641 12642 12643 12644 12645 12646 12647 12648 12649 12650 12651 12652 12653 12654 12655 12656 12657 12658 12659 12660 12661 12662 12663 12664 12665 12666 12667 12668 12669 12670 12671 12672 12673 12674 12675 12676 12677 12678 12679 12680 12681 12682 12683 12684 12685 12686 12687 12688 12689 12690 12691 12692 12693 12694 12695 12696 12697 12698 12699 12700 12701 12702 12703 12704 12705 12706 12707 12708 12709 12710 12711 12712 12713 12714 12715 12716 12717 12718 12719 12720 12721 12722 12723 12724 12725 12726 12727 12728 12729 12730 12731 12732 12733 12734 12735 12736 12737 12738 12739 12740 12741 12742 12743 12744 12745 12746 12747 12748 12749 12750 12751 12752 12753 12754 12755 12756 12757 12758 12759 12760 12761 12762 12763 12764 12765 12766 12767 12768 12769 12770 12771 12772 12773 12774 12775 12776 12777 12778 12779 12780 12781 12782 12783 12784 12785 12786 12787 12788 12789 12790 12791 12792 12793 12794 12795 12796 12797 12798 12799 12800 12801 12802 12803 12804 12805 12806 12807 12808 12809 12810 12811 12812 12813 12814 12815 12816 12817 12818 12819 12820 12821 12822 12823 12824 12825 12826 12827 12828 12829 12830 12831 12832 12833 12834 12835 12836 12837 12838 12839 12840 12841 12842 12843 12844 12845 12846 12847 12848 12849 12850 12851 12852 12853 12854 12855 12856 12857 12858 12859 12860 12861 12862 12863 12864 12865 12866 12867 12868 12869 12870 12871 12872 12873 12874 12875 12876 12877 12878 12879 12880 12881 12882 12883 12884 12885 12886 12887 12888 12889 12890 12891 12892 12893 12894 12895 12896 12897 12898 12899 12900 12901 12902 12903 12904 12905 12906 12907 12908 12909 12910 12911 12912 12913 12914 12915 12916 12917 12918 12919 12920 12921 12922 12923 12924 12925 12926 12927 12928 12929 12930 12931 12932 12933 12934 12935 12936 12937 12938 12939 12940 12941 12942 12943 12944 12945 12946 12947 12948 12949 12950 12951 12952 12953 12954 12955 12956 12957 12958 12959 12960 12961 12962 12963 12964 12965 12966 12967 12968 12969 12970 12971 12972 12973 12974 12975 12976 12977 12978 12979 12980 12981 12982 12983 12984 12985 12986 12987 12988 12989 12990 12991 12992 12993 12994 12995 12996 12997 12998 12999 13000 13001 13002 13003 13004 13005 13006 13007 13008 13009 13010 13011 13012 13013 13014 13015 13016 13017 13018 13019 13020 13021 13022 13023 13024 13025 13026 13027 13028 13029 13030 13031 13032 13033 13034 13035 13036 13037 13038 13039 13040 13041 13042 13043 13044 13045 13046 13047 13048 13049 13050 13051 13052 13053 13054 13055 13056 13057 13058 13059 13060 13061 13062 13063 13064 13065 13066 13067 13068 13069 13070 13071 13072 13073 13074 13075 13076 13077 13078 13079 13080 13081 13082 13083 13084 13085 13086 13087 13088 13089 13090 13091 13092 13093 13094 13095 13096 13097 13098 13099 13100 13101 13102 13103 13104 13105 13106 13107 13108 13109 13110 13111 13112 13113 13114 13115 13116 13117 13118 13119 13120 13121 13122 13123 13124 13125 13126 13127 13128 13129 13130 13131 13132 13133 13134 13135 13136 13137 13138 13139 13140 13141 13142 13143 13144 13145 13146 13147 13148 13149 13150 13151 13152 13153 13154 13155 13156 13157 13158 13159 13160 13161 13162 13163 13164 13165 13166 13167 13168 13169 13170 13171 13172 13173 13174 13175 13176 13177 13178 13179 13180 13181 13182 13183 13184 13185 13186 13187 13188 13189 13190 13191 13192 13193 13194 13195 13196 13197 13198 13199 13200 13201 13202 13203 13204 13205 13206 13207 13208 13209 13210 13211 13212 13213 13214 13215 13216 13217 13218 13219 13220 13221 13222 13223 13224 13225 13226 13227 13228 13229 13230 13231 13232 13233 13234 13235 13236 13237 13238 13239 13240 13241 13242 13243 13244 13245 13246 13247 13248 13249 13250 13251 13252 13253 13254 13255 13256 13257 13258 13259 13260 13261 13262 13263 13264 13265 13266 13267 13268 13269 13270 13271 13272 13273 13274 13275 13276 13277 13278 13279 13280 13281 13282 13283 13284 13285 13286 13287 13288 13289 13290 13291 13292 13293 13294 13295 13296 13297 13298 13299 13300 13301 13302 13303 13304 13305 13306 13307 13308 13309 13310 13311 13312 13313 13314 13315 13316 13317 13318 13319 13320 13321 13322 13323 13324 13325 13326 13327 13328 13329 13330 13331 13332 13333 13334 13335 13336 13337 13338 13339 13340 13341 13342 13343 13344 13345 13346 13347 13348 13349 13350 13351 13352 13353 13354 13355 13356 13357 13358 13359 13360 13361 13362 13363 13364 13365 13366 13367 13368 13369 13370 13371 13372 13373 13374 13375 13376 13377 13378 13379 13380 13381 13382 13383 13384 13385 13386 13387 13388 13389 13390 13391 13392 13393 13394 13395 13396 13397 13398 13399 13400 13401 13402 13403 13404 13405 13406 13407 13408 13409 13410 13411 13412 13413 13414 13415 13416 13417 13418 13419 13420 13421 13422 13423 13424 13425 13426 13427 13428 13429 13430 13431 13432 13433 13434 13435 13436 13437 13438 13439 13440 13441 13442 13443 13444 13445 13446 13447 13448 13449 13450 13451 13452 13453 13454 13455 13456 13457 13458 13459 13460 13461 13462 13463 13464 13465 13466 13467 13468 13469 13470 13471 13472 13473 13474 13475 13476 13477 13478 13479 13480 13481 13482 13483 13484 13485 13486 13487 13488 13489 13490 13491 13492 13493 13494 13495 13496 13497 13498 13499 13500 13501 13502 13503 13504 13505 13506 13507 13508 13509 13510 13511 13512 13513 13514 13515 13516 13517 13518 13519 13520 13521 13522 13523 13524 13525 13526 13527 13528 13529 13530 13531 13532 13533 13534 13535 13536 13537 13538 13539 13540 13541 13542 13543 13544 13545 13546 13547 13548 13549 13550 13551 13552 13553 13554 13555 13556 13557 13558 13559 13560 13561 13562 13563 13564 13565 13566 13567 13568 13569 13570 13571 13572 13573 13574 13575 13576 13577 13578 13579 13580 13581 13582 13583 13584 13585 13586 13587 13588 13589 13590 13591 13592 13593 13594 13595 13596 13597 13598 13599 13600 13601 13602 13603 13604 13605 13606 13607 13608 13609 13610 13611 13612 13613 13614 13615 13616 13617 13618 13619 13620 13621 13622 13623 13624 13625 13626 13627 13628 13629 13630 13631 13632 13633 13634 13635 13636 13637 13638 13639 13640 13641 13642 13643 13644 13645 13646 13647 13648 13649 13650 13651 13652 13653 13654 13655 13656 13657 13658 13659 13660 13661 13662 13663 13664 13665 13666 13667 13668 13669 13670 13671 13672 13673 13674 13675 13676 13677 13678 13679 13680 13681 13682 13683 13684 13685 13686 13687 13688 13689 13690 13691 13692 13693 13694 13695 13696 13697 13698 13699 13700 13701 13702 13703 13704 13705 13706 13707 13708 13709 13710 13711 13712 13713 13714 13715 13716 13717 13718 13719 13720 13721 13722 13723 13724 13725 13726 13727 13728 13729 13730 13731 13732 13733 13734 13735 13736 13737 13738 13739 13740 13741 13742 13743 13744 13745 13746 13747 13748 13749 13750 13751 13752 13753 13754 13755 13756 13757 13758 13759 13760 13761 13762 13763 13764 13765 13766 13767 13768 13769 13770 13771 13772 13773 13774 13775 13776 13777 13778 13779 13780 13781 13782 13783 13784 13785 13786 13787 13788 13789 13790 13791 13792 13793 13794 13795 13796 13797 13798 13799 13800 13801 13802 13803 13804 13805 13806 13807 13808 13809 13810 13811 13812 13813 13814 13815 13816 13817 13818 13819 13820 13821 13822 13823 13824 13825 13826 13827 13828 13829 13830 13831 13832 13833 13834 13835 13836 13837 13838 13839 13840 13841 13842 13843 13844 13845 13846 13847 13848 13849 13850 13851 13852 13853 13854 13855 13856 13857 13858 13859 13860 13861 13862 13863 13864 13865 13866 13867 13868 13869 13870 13871 13872 13873 13874 13875 13876 13877 13878 13879 13880 13881 13882 13883 13884 13885 13886 13887 13888 13889 13890 13891 13892 13893 13894 13895 13896 13897 13898 13899 13900 13901 13902 13903 13904 13905 13906 13907 13908 13909 13910 13911 13912 13913 13914 13915 13916 13917 13918 13919 13920 13921 13922 13923 13924 13925 13926 13927 13928 13929 13930 13931 13932 13933 13934 13935 13936 13937 13938 13939 13940 13941 13942 13943 13944 13945 13946 13947 13948 13949 13950 13951 13952 13953 13954 13955 13956 13957 13958 13959 13960 13961 13962 13963 13964 13965 13966 13967 13968 13969 13970 13971 13972 13973 13974 13975 13976 13977 13978 13979 13980 13981 13982 13983 13984 13985 13986 13987 13988 13989 13990 13991 13992 13993 13994 13995 13996 13997 13998 13999 14000 14001 14002 14003 14004 14005 14006 14007 14008 14009 14010 14011 14012 14013 14014 14015 14016 14017 14018 14019 14020 14021 14022 14023 14024 14025 14026 14027 14028 14029 14030 14031 14032 14033 14034 14035 14036 14037 14038 14039 14040 14041 14042 14043 14044 14045 14046 14047 14048 14049 14050 14051 14052 14053 14054 14055 14056 14057 14058 14059 14060 14061 14062 14063 14064 14065 14066 14067 14068 14069 14070 14071 14072 14073 14074 14075 14076 14077 14078 14079 14080 14081 14082 14083 14084 14085 14086 14087 14088 14089 14090 14091 14092 14093 14094 14095 14096 14097 14098 14099 14100 14101 14102 14103 14104 14105 14106 14107 14108 14109 14110 14111 14112 14113 14114 14115 14116 14117 14118 14119 14120 14121 14122 14123 14124 14125 14126 14127 14128 14129 14130 14131 14132 14133 14134 14135 14136 14137 14138 14139 14140 14141 14142 14143 14144 14145 14146 14147 14148 14149 14150 14151 14152 14153 14154 14155 14156 14157 14158 14159 14160 14161 14162 14163 14164 14165 14166 14167 14168 14169 14170 14171 14172 14173 14174 14175 14176 14177 14178 14179 14180 14181 14182 14183 14184 14185 14186 14187 14188 14189 14190 14191 14192 14193 14194 14195 14196 14197 14198 14199 14200 14201 14202 14203 14204 14205 14206 14207 14208 14209 14210 14211 14212 14213 14214 14215 14216 14217 14218 14219 14220 14221 14222 14223 14224 14225 14226 14227 14228 14229 14230 14231 14232 14233 14234 14235 14236 14237 14238 14239 14240 14241 14242 14243 14244 14245 14246 14247 14248 14249 14250 14251 14252 14253 14254 14255 14256 14257 14258 14259 14260 14261 14262 14263 14264 14265 14266 14267 14268 14269 14270 14271 14272 14273 14274 14275 14276 14277 14278 14279 14280 14281 14282 14283 14284 14285 14286 14287 14288 14289 14290 14291 14292 14293 14294 14295 14296 14297 14298 14299 14300 14301 14302 14303 14304 14305 14306 14307 14308 14309 14310 14311 14312 14313 14314 14315 14316 14317 14318 14319 14320 14321 14322 14323 14324 14325 14326 14327 14328 14329 14330 14331 14332 14333 14334 14335 14336 14337 14338 14339 14340 14341 14342 14343 14344 14345 14346 14347 14348 14349 14350 14351 14352 14353 14354 14355 14356 14357 14358 14359 14360 14361 14362 14363 14364 14365 14366 14367 14368 14369 14370 14371 14372 14373 14374 14375 14376 14377 14378 14379 14380 14381 14382 14383 14384 14385 14386 14387 14388 14389 14390 14391 14392 14393 14394 14395 14396 14397 14398 14399 14400 14401 14402 14403 14404 14405 14406 14407 14408 14409 14410 14411 14412 14413 14414 14415 14416 14417 14418 14419 14420 14421 14422 14423 14424 14425 14426 14427 14428 14429 14430 14431 14432 14433 14434 14435 14436 14437 14438 14439 14440 14441 14442 14443 14444 14445 14446 14447 14448 14449 14450 14451 14452 14453 14454 14455 14456 14457 14458 14459 14460 14461 14462 14463 14464 14465 14466 14467 14468 14469 14470 14471 14472 14473 14474 14475 14476 14477 14478 14479 14480 14481 14482 14483 14484 14485 14486 14487 14488 14489 14490 14491 14492 14493 14494 14495 14496 14497 14498 14499 14500 14501 14502 14503 14504 14505 14506 14507 14508 14509 14510 14511 14512 14513 14514 14515 14516 14517 14518 14519 14520 14521 14522 14523 14524 14525 14526 14527 14528 14529 14530 14531 14532 14533 14534 14535 14536 14537 14538 14539 14540 14541 14542 14543 14544 14545 14546 14547 14548 14549 14550 14551 14552 14553 14554 14555 14556 14557 14558 14559 14560 14561 14562 14563 14564 14565 14566 14567 14568 14569 14570 14571 14572 14573 14574 14575 14576 14577 14578 14579 14580 14581 14582 14583 14584 14585 14586 14587 14588 14589 14590 14591 14592 14593 14594 14595 14596 14597 14598 14599 14600 14601 14602 14603 14604 14605 14606 14607 14608 14609 14610 14611 14612 14613 14614 14615 14616 14617 14618 14619 14620 14621 14622 14623 14624 14625 14626 14627 14628 14629 14630 14631 14632 14633 14634 14635 14636 14637 14638 14639 14640 14641 14642 14643 14644 14645 14646 14647 14648 14649 14650 14651 14652 14653 14654 14655 14656 14657 14658 14659 14660 14661 14662 14663 14664 14665 14666 14667 14668 14669 14670 14671 14672 14673 14674 14675 14676 14677 14678 14679 14680 14681 14682 14683 14684 14685 14686 14687 14688 14689 14690 14691 14692 14693 14694 14695 14696 14697 14698 14699 14700 14701 14702 14703 14704 14705 14706 14707 14708 14709 14710 14711 14712 14713 14714 14715 14716 14717 14718 14719 14720 14721 14722 14723 14724 14725 14726 14727 14728 14729 14730 14731 14732 14733 14734 14735 14736 14737 14738 14739 14740 14741 14742 14743 14744 14745 14746 14747 14748 14749 14750 14751 14752 14753 14754 14755 14756 14757 14758 14759 14760 14761 14762 14763 14764 14765 14766 14767 14768 14769 14770 14771 14772 14773 14774 14775 14776 14777 14778 14779 14780 14781 14782 14783 14784 14785 14786 14787 14788 14789 14790 14791 14792 14793 14794 14795 14796 14797 14798 14799 14800 14801 14802 14803 14804 14805 14806 14807 14808 14809 14810 14811 14812 14813 14814 14815 14816 14817 14818 14819 14820 14821 14822 14823 14824 14825 14826 14827 14828 14829 14830 14831 14832 14833 14834 14835 14836 14837 14838 14839 14840 14841 14842 14843 14844 14845 14846 14847 14848 14849 14850 14851 14852 14853 14854 14855 14856 14857 14858 14859 14860 14861 14862 14863 14864 14865 14866 14867 14868 14869 14870 14871 14872 14873 14874 14875 14876 14877 14878 14879 14880 14881 14882 14883 14884 14885 14886 14887 14888 14889 14890 14891 14892 14893 14894 14895 14896 14897 14898 14899 14900 14901 14902 14903 14904 14905 14906 14907 14908 14909 14910 14911 14912 14913 14914 14915 14916 14917 14918 14919 14920 14921 14922 14923 14924 14925 14926 14927 14928 14929 14930 14931 14932 14933 14934 14935 14936 14937 14938 14939 14940 14941 14942 14943 14944 14945 14946 14947 14948 14949 14950 14951 14952 14953 14954 14955 14956 14957 14958 14959 14960 14961 14962 14963 14964 14965 14966 14967 14968 14969 14970 14971 14972 14973 14974 14975 14976 14977 14978 14979 14980 14981 14982 14983 14984 14985 14986 14987 14988 14989 14990 14991 14992 14993 14994 14995 14996 14997 14998 14999 15000 15001 15002 15003 15004 15005 15006 15007 15008 15009 15010 15011 15012 15013 15014 15015 15016 15017 15018 15019 15020 15021 15022 15023 15024 15025 15026 15027 15028 15029 15030 15031 15032 15033 15034 15035 15036 15037 15038 15039 15040 15041 15042 15043 15044 15045 15046 15047 15048 15049 15050 15051 15052 15053 15054 15055 15056 15057 15058 15059 15060 15061 15062 15063 15064 15065 15066 15067 15068 15069 15070 15071 15072 15073 15074 15075 15076 15077 15078 15079 15080 15081 15082 15083 15084 15085 15086 15087 15088 15089 15090 15091 15092 15093 15094 15095 15096 15097 15098 15099 15100 15101 15102 15103 15104 15105 15106 15107 15108 15109 15110 15111 15112 15113 15114 15115 15116 15117 15118 15119 15120 15121 15122 15123 15124 15125 15126 15127 15128 15129 15130 15131 15132 15133 15134 15135 15136 15137 15138 15139 15140 15141 15142 15143 15144 15145 15146 15147 15148 15149 15150 15151 15152 15153 15154 15155 15156 15157 15158 15159 15160 15161 15162 15163 15164 15165 15166 15167 15168 15169 15170 15171 15172 15173 15174 15175 15176 15177 15178 15179 15180 15181 15182 15183 15184 15185 15186 15187 15188 15189 15190 15191 15192 15193 15194 15195 15196 15197 15198 15199 15200 15201 15202 15203 15204 15205 15206 15207 15208 15209 15210 15211 15212 15213 15214 15215 15216 15217 15218 15219 15220 15221 15222 15223 15224 15225 15226 15227 15228 15229 15230 15231 15232 15233 15234 15235 15236 15237 15238 15239 15240 15241 15242 15243 15244 15245 15246 15247 15248 15249 15250 15251 15252 15253 15254 15255 15256 15257 15258 15259 15260 15261 15262 15263 15264 15265 15266 15267 15268 15269 15270 15271 15272 15273 15274 15275 15276 15277 15278 15279 15280 15281 15282 15283 15284 15285 15286 15287 15288 15289 15290 15291 15292 15293 15294 15295 15296 15297 15298 15299 15300 15301 15302 15303 15304 15305 15306 15307 15308 15309 15310 15311 15312 15313 15314 15315 15316 15317 15318 15319 15320 15321 15322 15323 15324 15325 15326 15327 15328 15329 15330 15331 15332 15333 15334 15335 15336 15337 15338 15339 15340 15341 15342 15343 15344 15345 15346 15347 15348 15349 15350 15351 15352 15353 15354 15355 15356 15357 15358 15359 15360 15361 15362 15363 15364 15365 15366 15367 15368 15369 15370 15371 15372 15373 15374 15375 15376 15377 15378 15379 15380 15381 15382 15383 15384 15385 15386 15387 15388 15389 15390 15391 15392 15393 15394 15395 15396 15397 15398 15399 15400 15401 15402 15403 15404 15405 15406 15407 15408 15409 15410 15411 15412 15413 15414 15415 15416 15417 15418 15419 15420 15421 15422 15423 15424 15425 15426 15427 15428 15429 15430 15431 15432 15433 15434 15435 15436 15437 15438 15439 15440 15441 15442 15443 15444 15445 15446 15447 15448 15449 15450 15451 15452 15453 15454 15455 15456 15457 15458 15459 15460 15461 15462 15463 15464 15465 15466 15467 15468 15469 15470 15471 15472 15473 15474 15475 15476 15477 15478 15479 15480 15481 15482 15483 15484 15485 15486 15487 15488 15489 15490 15491 15492 15493 15494 15495 15496 15497 15498 15499 15500 15501 15502 15503 15504 15505 15506 15507 15508 15509 15510 15511 15512 15513 15514 15515 15516 15517 15518 15519 15520 15521 15522 15523 15524 15525 15526 15527 15528 15529 15530 15531 15532 15533 15534 15535 15536 15537 15538 15539 15540 15541 15542 15543 15544 15545 15546 15547 15548 15549 15550 15551 15552 15553 15554 15555 15556 15557 15558 15559 15560 15561 15562 15563 15564 15565 15566 15567 15568 15569 15570 15571 15572 15573 15574 15575 15576 15577 15578 15579 15580 15581 15582 15583 15584 15585 15586 15587 15588 15589 15590 15591 15592 15593 15594 15595 15596 15597 15598 15599 15600 15601 15602 15603 15604 15605 15606 15607 15608 15609 15610 15611 15612 15613 15614 15615 15616 15617 15618 15619 15620 15621 15622 15623 15624 15625 15626 15627 15628 15629 15630 15631 15632 15633 15634 15635 15636 15637 15638 15639 15640 15641 15642 15643 15644 15645 15646 15647 15648 15649 15650 15651 15652 15653 15654 15655 15656 15657 15658 15659 15660 15661 15662 15663 15664 15665 15666 15667 15668 15669 15670 15671 15672 15673 15674 15675 15676 15677 15678 15679 15680 15681 15682 15683 15684 15685 15686 15687 15688 15689 15690 15691 15692 15693 15694 15695 15696 15697 15698 15699 15700 15701 15702 15703 15704 15705 15706 15707 15708 15709 15710 15711 15712 15713 15714 15715 15716 15717 15718 15719 15720 15721 15722 15723 15724 15725 15726 15727 15728 15729 15730 15731 15732 15733 15734 15735 15736 15737 15738 15739 15740 15741 15742 15743 15744 15745 15746 15747 15748 15749 15750 15751 15752 15753 15754 15755 15756 15757 15758 15759 15760 15761 15762 15763 15764 15765 15766 15767 15768 15769 15770 15771 15772 15773 15774 15775 15776 15777 15778 15779 15780 15781 15782 15783 15784 15785 15786 15787 15788 15789 15790 15791 15792 15793 15794 15795 15796 15797 15798 15799 15800 15801 15802 15803 15804 15805 15806 15807 15808 15809 15810 15811 15812 15813 15814 15815 15816 15817 15818 15819 15820 15821 15822 15823 15824 15825 15826 15827 15828 15829 15830 15831 15832 15833 15834 15835 15836 15837 15838 15839 15840 15841 15842 15843 15844 15845 15846 15847 15848 15849 15850 15851 15852 15853 15854 15855 15856 15857 15858 15859 15860 15861 15862 15863 15864 15865 15866 15867 15868 15869 15870 15871 15872 15873 15874 15875 15876 15877 15878 15879 15880 15881 15882 15883 15884 15885 15886 15887 15888 15889 15890 15891 15892 15893 15894 15895 15896 15897 15898 15899 15900 15901 15902 15903 15904 15905 15906 15907 15908 15909 15910 15911 15912 15913 15914 15915 15916 15917 15918 15919 15920 15921 15922 15923 15924 15925 15926 15927 15928 15929 15930 15931 15932 15933 15934 15935 15936 15937 15938 15939 15940 15941 15942 15943 15944 15945 15946 15947 15948 15949 15950 15951 15952 15953 15954 15955 15956 15957 15958 15959 15960 15961 15962 15963 15964 15965 15966 15967 15968 15969 15970 15971 15972 15973 15974 15975 15976 15977 15978 15979 15980 15981 15982 15983 15984 15985 15986 15987 15988 15989 15990 15991 15992 15993 15994 15995 15996 15997 15998 15999 16000 16001 16002 16003 16004 16005 16006 16007 16008 16009 16010 16011 16012 16013 16014 16015 16016 16017 16018 16019 16020 16021 16022 16023 16024 16025 16026 16027 16028 16029 16030 16031 16032 16033 16034 16035 16036 16037 16038 16039 16040 16041 16042 16043 16044 16045 16046 16047 16048 16049 16050 16051 16052 16053 16054 16055 16056 16057 16058 16059 16060 16061 16062 16063 16064 16065 16066 16067 16068 16069 16070 16071 16072 16073 16074 16075 16076 16077 16078 16079 16080 16081 16082 16083 16084 16085 16086 16087 16088 16089 16090 16091 16092 16093 16094 16095 16096 16097 16098 16099 16100 16101 16102 16103 16104 16105 16106 16107 16108 16109 16110 16111 16112 16113 16114 16115 16116 16117 16118 16119 16120 16121 16122 16123 16124 16125 16126 16127 16128 16129 16130 16131 16132 16133 16134 16135 16136 16137 16138 16139 16140 16141 16142 16143 16144 16145 16146 16147 16148 16149 16150 16151 16152 16153 16154 16155 16156 16157 16158 16159 16160 16161 16162 16163 16164 16165 16166 16167 16168 16169 16170 16171 16172 16173 16174 16175 16176 16177 16178 16179 16180 16181 16182 16183 16184 16185 16186 16187 16188 16189 16190 16191 16192 16193 16194 16195 16196 16197 16198 16199 16200 16201 16202 16203 16204 16205 16206 16207 16208 16209 16210 16211 16212 16213 16214 16215 16216 16217 16218 16219 16220 16221 16222 16223 16224 16225 16226 16227 16228 16229 16230 16231 16232 16233 16234 16235 16236 16237 16238 16239 16240 16241 16242 16243 16244 16245 16246 16247 16248 16249 16250 16251 16252 16253 16254 16255 16256 16257 16258 16259 16260 16261 16262 16263 16264 16265 16266 16267 16268 16269 16270 16271 16272 16273 16274 16275 16276 16277 16278 16279 16280 16281 16282 16283 16284 16285 16286 16287 16288 16289 16290 16291 16292 16293 16294 16295 16296 16297 16298 16299 16300 16301 16302 16303 16304 16305 16306 16307 16308 16309 16310 16311 16312 16313 16314 16315 16316 16317 16318 16319 16320 16321 16322 16323 16324 16325 16326 16327 16328 16329 16330 16331 16332 16333 16334 16335 16336 16337 16338 16339 16340 16341 16342 16343 16344 16345 16346 16347 16348 16349 16350 16351 16352 16353 16354 16355 16356 16357 16358 16359 16360 16361 16362 16363 16364 16365 16366 16367 16368 16369 16370 16371 16372 16373 16374 16375 16376 16377 16378 16379 16380 16381 16382 16383 16384 16385 16386 16387 16388 16389 16390 16391 16392 16393 16394 16395 16396 16397 16398 16399 16400 16401 16402 16403 16404 16405 16406 16407 16408 16409 16410 16411 16412 16413 16414 16415 16416 16417 16418 16419 16420 16421 16422 16423 16424 16425 16426 16427 16428 16429 16430 16431 16432 16433 16434 16435 16436 16437 16438 16439 16440 16441 16442 16443 16444 16445 16446 16447 16448 16449 16450 16451 16452 16453 16454 16455 16456 16457 16458 16459 16460 16461 16462 16463 16464 16465 16466 16467 16468 16469 16470 16471 16472 16473 16474 16475 16476 16477 16478 16479 16480 16481 16482 16483 16484 16485 16486 16487 16488 16489 16490 16491 16492 16493 16494 16495 16496 16497 16498 16499 16500 16501 16502 16503 16504 16505 16506 16507 16508 16509 16510 16511 16512 16513 16514 16515 16516 16517 16518 16519 16520 16521 16522 16523 16524 16525 16526 16527 16528 16529 16530 16531 16532 16533 16534 16535 16536 16537 16538 16539 16540 16541 16542 16543 16544 16545 16546 16547 16548 16549 16550 16551 16552 16553 16554 16555 16556 16557 16558 16559 16560 16561 16562 16563 16564 16565 16566 16567 16568 16569 16570 16571 16572 16573 16574 16575 16576 16577 16578 16579 16580 16581 16582 16583 16584 16585 16586 16587 16588 16589 16590 16591 16592 16593 16594 16595 16596 16597 16598 16599 16600 16601 16602 16603 16604 16605 16606 16607 16608 16609 16610 16611 16612 16613 16614 16615 16616 16617 16618 16619 16620 16621 16622 16623 16624 16625 16626 16627 16628 16629 16630 16631 16632 16633 16634 16635 16636 16637 16638 16639 16640 16641 16642 16643 16644 16645 16646 16647 16648 16649 16650 16651 16652 16653 16654 16655 16656 16657 16658 16659 16660 16661 16662 16663 16664 16665 16666 16667 16668 16669 16670 16671 16672 16673 16674 16675 16676 16677 16678 16679 16680 16681 16682 16683 16684 16685 16686 16687 16688 16689 16690 16691 16692 16693 16694 16695 16696 16697 16698 16699 16700 16701 16702 16703 16704 16705 16706 16707 16708 16709 16710 16711 16712 16713 16714 16715 16716 16717 16718 16719 16720 16721 16722 16723 16724 16725 16726 16727 16728 16729 16730 16731 16732 16733 16734 16735 16736 16737 16738 16739 16740 16741 16742 16743 16744 16745 16746 16747 16748 16749 16750 16751 16752 16753 16754 16755 16756 16757 16758 16759 16760 16761 16762 16763 16764 16765 16766 16767 16768 16769 16770 16771 16772 16773 16774 16775 16776 16777 16778 16779 16780 16781 16782 16783 16784 16785 16786 16787 16788 16789 16790 16791 16792 16793 16794 16795 16796 16797 16798 16799 16800 16801 16802 16803 16804 16805 16806 16807 16808 16809 16810 16811 16812 16813 16814 16815 16816 16817 16818 16819 16820 16821 16822 16823 16824 16825 16826 16827 16828 16829 16830 16831 16832 16833 16834 16835 16836 16837 16838 16839 16840 16841 16842 16843 16844 16845 16846 16847 16848 16849 16850 16851 16852 16853 16854 16855 16856 16857 16858 16859 16860 16861 16862 16863 16864 16865 16866 16867 16868 16869 16870 16871 16872 16873 16874 16875 16876 16877 16878 16879 16880 16881 16882 16883 16884 16885 16886 16887 16888 16889 16890 16891 16892 16893 16894 16895 16896 16897 16898 16899 16900 16901 16902 16903 16904 16905 16906 16907 16908 16909 16910 16911 16912 16913 16914 16915 16916 16917 16918 16919 16920 16921 16922 16923 16924 16925 16926 16927 16928 16929 16930 16931 16932 16933 16934 16935 16936 16937 16938
|
2025-09-23 Werner Koch <wk@gnupg.org>
Release 2.0.1.
+ commit e4adebe020b07bc47e583817576ce98ca93e9711
2025-08-29 NIIBE Yutaka <gniibe@fsij.org>
gpgsm: Extend gpgsm_assuan_simple_command to consule diag output.
+ commit cff9df67d34fa21fc8f3ba47300e1671c4526629
* src/engine-gpgsm.c (gpgsm_assuan_simple_command): Take care about
diag output.
gpgsm: Introduce two phase interactions to consume diag output.
+ commit 52bde50b879c2b9318c87eb9f377bed6557366e2
* src/engine-gpgsm.c (prepare): Move the first part from...
(start): ... here.
(gpgsm_decrypt, gpgsm_delete, gpgsm_encrypt)
(gpgsm_export, gpgsm_export_ext, gpgsm_genkey)
(gpgsm_import, gpgsm_keylist, gpgsm_keylist_ext)
(gpgsm_sign, gpgsm_verify, gpgsm_getauditlog)
(gpgsm_passwd): Follow the change.
2025-07-18 Werner Koch <wk@gnupg.org>
Make it easier to maintain gpgme.h by using forward declarations.
+ commit 6a1f72b4702488f5ee4e14ef308876349ac8a005
* src/gpgme.h.in: Use forward declarations for the key objects.
2025-07-16 Werner Koch <wk@gnupg.org>
Rename an internal function for clarity.
+ commit 1821ebaa333dfadf936b8fc38dd8483abee7aab3
* src/key.c (_gpgme_key_add_sig): Rename to ...
(_gpgme_key_add_uid_sig): this.
2025-07-15 Werner Koch <wk@gnupg.org>
gnupg-manage-keys: Implement a new tool.
+ commit 9e3266ccbbdf6ab9b37ec4e0c5342630dc0ffa82
* tools/gnupg-key-manage.c: new.
* tools/Makefile.am: New.
* configure.ac: Add Makefile.
* Makefile.am (SUBDIRS): Add tools directory.
2025-07-05 Collin Funk via Gnupg-devel <gnupg-devel@gnupg.org>
Fix an uninitialized variable.
+ commit 6e37569847d7948c63c14dd67c42993eb21d6018
* src/engine-gpg.c (gpg_getdirect): Initialize ERR to zero to satisfy
the loop condition.
2025-07-03 Collin Funk via Gnupg-devel <gnupg-devel@gnupg.org>
Remove duplicate character passed to strchr.
+ commit 74b725457432173865299c046adc4b42d263ecac
* src/keylist.c (parse_sec_field15): Remove duplicate '0' character.
2025-06-23 NIIBE Yutaka <gniibe@fsij.org>
Use sysconf as a fallback mechanism in the initialization.
+ commit 8caa7cc517ebf61c5e47c9b571169740a9301acb
* src/posix-io.c (max_fds_fallback): New.
[_SC_OPEN_MAX] (_gpgme_io_subsystem_init): Set max_fds_fallback.
(get_max_fds): Use max_fds_fallback.
Fix debug output of posix-io.c.
+ commit 075e5be9fbee6022e640ffd759b2d500d29bf5cd
* src/posix-io.c (_gpgme_io_select_poll): Emit the file descriptor
information just like _gpgme_io_select_select.
2025-06-20 NIIBE Yutaka <gniibe@fsij.org>
posix: Clean up get_max_fds implementation.
+ commit e8e5434cc4f5cc3c322659792cc1850a5c5b26b8
* src/posix-io.c (get_max_fds): Return type is int.
Ifdef-out TRACE.
Remove call to sysconf.
Use long for R and POS.
Use aligned buffer for struct linux_dirent64.
2025-06-03 Werner Koch <wk@gnupg.org>
Release 2.0.0.
+ commit e17ba578861905857da0a514b4fc9b88a57f7346
2025-05-24 Werner Koch <wk@gnupg.org>
Fix an include guard.
+ commit e763305ff1ce2aeaef1087f543ceb473bc3cb8d2
* src/json-common.h (GPGME_JSON_COMMON_H): Fix guard.
2025-05-23 Werner Koch <wk@gnupg.org>
json: Fix minor memory leak.
+ commit 66de35a9b1170815e51005996441318bd9574e68
* src/json-core.c (json_core_process_request): Fix leak and worng
formatting in interactive mode in case of an error.
Refactor gpgme-json for future re-use.
+ commit d7267db472a4e4f65c8139f68d9d976c64b79636
* src/gpgme-json.c: Factor large chunks of code out to ...
* src/json-core.c: new file and ...
* src/json-util.c: new file and ...
* src/json-common.h: new file.
* src/Makefile.am (gpgme_json_SOURCES): Add new files.
2025-05-14 Ingo Klöcker <dev@ingo-kloecker.de>
Treat empty algorithm the same way as unset algorithm.
+ commit 15ae7da74bc403d19df8d3ca3c0176b7dac98e18
* src/engine-gpg.c (gpg_add_algo_usage_expire): Add "default" as
algorithm argument if algo is NULL or an empty string.
2025-05-13 Ingo Klöcker <dev@ingo-kloecker.de>
Add algorithm, usage and expire also if only the group flag is set.
+ commit 8f08ca0e382085f9caba8ff969aa1ce66b6a84c8
* src/engine-gpg.c (gpg_add_algo_usage_expire): Check flags for
GPGME_CREATE_GROUP flag.
2025-05-12 Werner Koch <wk@gnupg.org>
Add GPGME_CREATE_GROUP flag for gpgme_op_createkey and _createsubkey.
+ commit 905bd760a99a455af6717b66311fc2197dea1055
* src/gpgme.h.in (GPGME_CREATE_GROUP): New.
* src/engine-gpg.c (gpg_add_algo_usage_expire): Pass to engine.
* tests/run-genkey.c (parse_usage_string): Support here too.
2025-05-05 Werner Koch <wk@gnupg.org>
Change timestamp fields from signed to unsigned long.
+ commit f2d40473b522e348d96a70c089d2191d0b978098
* src/gpgme.h.in (struct _gpgme_subkey): Chnage timestamp and expires.
(struct _gpgme_key_sig): Ditto.
(struct _gpgme_new_signature): Ditto.
Allow signing using an exactly specified subkey.
+ commit bfd320abfeaf0c7a16af3057279c77a45bfa961a
* src/engine-gpg.c (append_args_from_signers): Detect exactly
specified keys and apped the '!' suffix.
Mark the subkey used to find a key.
+ commit 87d6da1188db3c7df899821e4c0d895c61504522
* src/gpgme.h.in (struct _gpgme_subkey): New flag subkey_match.
* src/keylist.c (spacep): New.
(op_data_t): Add field requested_subkey.
(release_op_data): Free it.
(exact_match_pattern): New.
(maybe_setup_for_requested_subkey): New.
(gpgme_op_keylist_start): Call it here.
(gpgme_op_keylist_ext_start): Call it for each pattern until one
found.
(gpgme_op_keylist_next): Set the subkey_match field.
---
This is needed for
2025-03-18 Werner Koch <wk@gnupg.org>
New decrypt flags GPGME_DECRYPT_LISTONLY.
+ commit 91a59d2a35540769c055da2341b5face0be6c286
* src/gpgme.h.in (GPGME_DECRYPT_LISTONLY): New.
* src/decrypt.c (op_data_t): Add member list_only.
(_gpgme_decrypt_status_handler): Do not return NO_DATA in list_only
mode.
(_gpgme_op_decrypt_init_result): Add arg flags and set the list_only
flag.
(_gpgme_decrypt_start): Pss flags to the init function.
* src/decrypt-verify.c (decrypt_verify_start): Ditto.
* src/engine-gpg.c (gpg_decrypt): Add --list-only if flag is set.
* tests/run-decrypt.c (main): Add option --list-only.
2025-03-14 Werner Koch <wk@gnupg.org>
Add API gpgme_op_random_value.
+ commit 926b1f1f1e3e382f08cc57fc86d5892649514007
* src/genrandom.c (getrandom_size_t): New.
(gpgme_op_random_value): New.
* src/gpgme.def: Add new function.
* src/libgpgme.vers: Ditto.
* src/gpgme.h.in: Add prototype.
* tests/run-genrandom.c: Add an option to use the new function.
2025-03-10 NIIBE Yutaka <gniibe@fsij.org>
m4: Update libassuan.m4.
+ commit 7568566ef3d1230ee134b3db3128c8681ebecf37
* m4/libassuan.m4: Update from libassuan master.
2025-02-26 Werner Koch <wk@gnupg.org>
Add API gpgme_op_random_bytes.
+ commit 0a64c7d0c6d0463cf2e06b3a01ef5be4d879bcf0
* src/genrandom.c: New.
* src/Makefile.am: Add new file.
* src/engine-backend.h (struct engine_ops): Add func ptr getdirect.
Adjust all engine_ops.
* src/engine-gpg.c (gpg_getdirect): New.
(_gpgme_engine_ops_gpg): Connect new handler.
* src/gpgme.h.in (gpgme_random_mode_t): New.
(GPGME_RANDOM_MODE_NORMAL): New.
(GPGME_RANDOM_MODE_ZBASE32): New.
(gpgme_op_random_bytes): New public function
* src/libgpgme.vers: Add function.
* src/gpgme.def: Add function.
* tests/run-genrandom.c: New.
* tests/Makefile.am: Add new file.
2025-02-21 Werner Koch <wk@gnupg.org>
Remove now unused functions.
+ commit 2e21919a1b2663137c123917cee0a12b98ad36b2
* src/engine.c (_gpgme_engine_op_trustlist): Remove.
* src/libgpgme.vers (gpgme_op_trustlist_end)
(gpgme_op_trustlist_next)
(gpgme_op_trustlist_start): Remove.
* src/gpgme.def: Ditto.
* src/key.c (otrust_to_string)
(validity_to_string)
(capabilities_to_string)
(get_keysig): Remove
Remove the long deprecated and never working trust list functions.
+ commit 7e6a65e66a96278bed5fed6d0b75887c0f032c4e
* src/trust-item.c: Remove file.
* src/trustlist.c: Remove file.
* src/Makefile.am (main_sources): Remove those files.
* src/gpgme.h.in (GPGME_EVENT_NEXT_TRUSTITEM): Remove.
(gpgme_trust_item_t, GpgmeTrustItem): Remove.
(gpgme_op_trustlist_start): Remove.
(gpgme_op_trustlist_next): Remove.
(gpgme_op_trustlist_end): Remove.
(gpgme_trust_item_ref): Remove.
(gpgme_trust_item_unref, gpgme_trust_item_release): Remove.
* src/gpgme.def: Remove removed functions.
* src/libgpgme.vers: Ditto.
Remove long deprecated functions.
+ commit d54d6eaa642ba6de179ef280930525c7367c9b88
* src/gpgme.h.in (GPGME_EXPORT_MODE_NOUID): Remove. This was a
left-over from an experiment.
(gpgme_attr_t,_gpgme_attr_t) Remove. Deprecated sinze 2003.
(gpgme_get_sig_ulong_attr): Ditto.
(gpgme_get_sig_string_attr): Ditto.
(gpgme_key_get_string_attr): Ditto.
(gpgme_key_get_ulong_attr): Ditto.
(gpgme_key_sig_get_string_attr): Ditto.
(gpgme_key_sig_get_ulong_attr): Ditto.
(gpgme_trust_item_get_string_attr): Ditto.
(gpgme_trust_item_get_int_attr): Ditto.
* src/gpgme.def: Remove them here too.
* src/libgpgme.vers: Ditto.
* src/trust-item.c: Remove corresponding implementations.
* src/verify.c: Ditto.
* src/key.c: Ditto.
2025-02-03 Werner Koch <wk@gnupg.org>
core: Fix regression for RSA in gpgme_pubkey_algo_string.
+ commit 7d09f1f9fbf8889f467a06432f1954f9ad4f5922
* src/gpgme.c (gpgme_pubkey_algo_string): Consider all RSA variants.
2025-02-03 Ingo Klöcker <dev@ingo-kloecker.de>
python: Remove Python bindings.
+ commit 932caf37d36eca2caec59bf48bc505364a5765bb
* README: Update.
* configure.ac: Remove checks, variables and file generations related to
the Python bindings. Remove python from available_languages and
default_languages.
* lang/Makefile.am (DIST_SUBDIRS): Remove python.
* lang/python: Remove.
* m4/ax_pkg_swig.m4, m4/ax_python_devel.m4, m4/python.m4: Remove.
cpp,qt: Remove C++ and Qt bindings.
+ commit 763d5f5d6a88ec938b8678ab597e1404af724553
* README: Update.
* configure.ac: Remove checks, variables and file generations related to
the C++/Qt bindings. Remove cpp and qt* from available_languages and
default_languages.
* lang/Makefile.am (DIST_SUBDIRS): Remove cpp and qt.
* lang/cpp, lang/qt: Remove.
* m4/ax_check_compile_flag.m4, m4/ax_cxx_compile_stdcxx.m4,
m4/ax_gcc_func_attribute.m4, m4/pkg.m4, m4/qt5.m4, m4/qt6.m4: Remove.
2025-01-15 Ingo Klöcker <dev@ingo-kloecker.de>
build: Fix generation of ChangeLog on secondary working trees.
+ commit f6403a998f812b95534c1b6911b4ae5590c0d970
* Makefile.am (gen-ChangeLog): Use test -e instead of test -d to check
for git working trees.
2025-01-15 NIIBE Yutaka <gniibe@fsij.org>
build: Remove defining GPG_ERR_ENABLE_ERRNO_MACROS.
+ commit fa17f2aaedb50cb576c47b191b3599e384272bc2
* configure.ac (GPG_ERR_ENABLE_ERRNO_MACROS): Remove.
2025-01-02 Ingo Klöcker <dev@ingo-kloecker.de>
tests,json: Prevent failing tests after 2027-05-15.
+ commit b9f9e24c00448851027683757ee5cf3f8c569ff1
* tests/json/key-with-revokers.asc: Replace with new public key.
* tests/json/t-keylist-revokers.out.json: Update to new public key.
2024-12-04 Ingo Klöcker <dev@ingo-kloecker.de>
build,python: Fix uninstalling in distcheck.
+ commit 7a42ec5d466dfb5d4571773e22a51d0786b76d85
* lang/python/Makefile.am (uninstall-local): Get platlib path relative
to data path.
build,python: Add Python 3.13 and remove Python 3.8.
+ commit 27da4ec6350d803354d691c06a31c47176ec1064
* configure.ac: Look for Python 3.13. Don't look for Python 3.8 anymore.
* lang/python/setup.py.in: Update Python versions in classifiers.
* m4/python.m4: Add python3.13 as valid interpreter. Remove python3.8.
2024-12-04 Werner Koch <wk@gnupg.org>
lgh1
Add a configure test for gettid.
+ commit 4a62318422ca3f0f72b6fd00031daba556a10687
* configure.ac (HAVE_GETTID,HAVE_SYS_GETTID): New test.
* src/debug.c: Include syscall.h if needed.
(tid_log_callback) [HAVE_SYS_GETTID]: Use SYS_gettid
2024-11-14 Ingo Klöcker <dev@ingo-kloecker.de>
cpp: Add Kyber algorithm.
+ commit 56718f8d204f8a5895feb1a99c4b8ecd42b78010
* lang/cpp/src/key.h (enum Subkey::PubkeyAlgo): Add AlgoKyber with
same value as GPGME_PK_KYBER.
2024-11-14 Werner Koch <wk@gnupg.org>
Support the Kyber algorithm in key listings.
+ commit 62b6c1f16ae0ed7b0eb1b095ee383aa0910314bb
* src/gpgme.h.in (GPGME_PK_KYBER): New.
* src/conversion.c (_gpgme_map_pk_algo): Handle Kyber.
* src/gpgme.c (gpgme_pubkey_algo_string): Support Kyber.
(gpgme_pubkey_algo_name): Add Kyber.
2024-11-06 Werner Koch <wk@gnupg.org>
Release 1.24.0.
+ commit 98b10fbc63b323a146e66a2ea8f7ff8f216b31d7
2024-11-05 Werner Koch <wk@gnupg.org>
Include the full commit id.
+ commit 0ad30e670aecce24eb1e59854d8f639ceb4009a6
* autogen.sh: Update to version 2024-07-04 from libgpg-error.
* configure.ac (BUILD_COMMITID): New. Append to VERSION file.
* src/version.c (cright_blurb): Use BUILD_COMMITID here.
2024-10-29 Werner Koch <wk@gnupg.org>
core: New context flags "known-notations".
+ commit a304ec0ede937e21df5b4a311cbaf8d89f13ef59
* src/gpgme.c (gpgme_set_ctx_flag): Add "known-notations".
(gpgme_get_ctx_flag): Ditto.
(gpgme_release): Free variable.
* src/context.h (struct gpgme_context): Add "known_notations".
* src/engine-gpg.c (struct engine_gpg): Add "known_notations".
(gpg_release): Free variable.
(gpg_set_engine_flags): Set variable.
(add_known_notations): New.
(gpg_decrypt, gpg_verify): Call function.
* tests/run-decrypt.c (main): Add option --known-notations.
* tests/run-verify.c (main): Ditto.
core: Add new helper _gpgme_strtokenize.
+ commit c835676f7dfe39830d5b0500ad2cb809832428d1
* src/conversion.c (spacep): New.
(_gpgme_strtokenize): New.
2024-10-23 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Fix typo.
+ commit e656e51d535cdce2db3e1a4848029a2410c30108
* lang/qt/src/Makefile.am (camelcase_headers): Fix typo in header name.
qt: Put attributes before declarations.
+ commit 7d02ba8a9308b25140f6d1b9a5ad5c14f0b36374
* lang/qt/src/downloadjob.h (DownloadJob::start): Move QGPGME_DEPRECATED
before the whole function declaration.
cpp: Put attributes before declarations.
+ commit c4b39a77950b3b737de06eca044b35a845fc6299
* lang/cpp/src/key.h (UserID::Signature::Notation): Move
GPGMEPP_DEPRECATED before the whole typedef declaration.
* lang/cpp/src/verificationresult.h (Signature::Notation): Ditto.
cpp: Add/change some includes.
+ commit bff4b847fc6361c6027afc1e8c78aa7580e2a27c
* lang/cpp/src/gpgaddexistingsubkeyeditinteractor.h,
lang/cpp/src/gpgrevokekeyeditinteractor.h: Include <string>.
* lang/cpp/src/key.h: Include <ctime> instead of <sys/time.h>.
2024-10-21 Ingo Klöcker <dev@ingo-kloecker.de>
cpp: Add support for new flag fields beta_compliance.
+ commit 2a0595906970505debf64e166b9a35cccbf1b424
* lang/cpp/src/decryptionresult.cpp, lang/cpp/src/decryptionresult.h
(class DecryptionResult): Add method isBetaCompliance.
* lang/cpp/src/decryptionresult.cpp (operator<<): Add new flag.
* lang/cpp/src/key.cpp, lang/cpp/src/key.h (class Key): Add method
isBetaCompliance.
(class Subkey): Add method isBetaCompliance.
* lang/cpp/src/key.cpp:
(Key::isDeVs): Remove duplicate check of is_de_vs of first subkey.
(operator<<): Add new flag.
* lang/cpp/src/verificationresult.cpp, lang/cpp/src/verificationresult.h
(class Signature): Add method isBetaCompliance.
* lang/cpp/src/verificationresult.cpp (operator<<): Add new flag.
2024-10-09 Tobias Fella <tobias.fella@gnupg.com>
core: fix passing --proc-all-sigs to gpgtar.
+ commit 227c9c763b30072e9a58bbbe7f66056aa966378f
* src/engine-gpg.c: Pass --gpg-args before passing --proc-all-sigs
if using gpgtar
2024-10-07 Werner Koch <wk@gnupg.org>
core: New flag fields beta_compliance.
+ commit 1a7bc88ee756df127761c90a4b66d885f0c9de74
* src/gpgme.h.in (struct _gpgme_subkey): Add field beta_compliance.
(struct _gpgme_op_decrypt_result): Ditto.
(struct _gpgme_signature): Ditto.
* src/util.h (PARSE_COMPLIANCE_FLAGS): Handle the new 2023 value.
* tests/run-decrypt.c: Append a "(beta)" to the vs-de compliance.
* tests/run-keylist.c: Ditto.
* tests/run-verify.c: Ditto.
2024-09-26 Werner Koch <wk@gnupg.org>
core: Allow GPGME_CREATE_ADSK also for gnupg 2.2.45.
+ commit 3bf1ea97bcabac31d29f17320cdad2f75f759435
* src/engine-gpg.c (gpg_addadsk): Extend the version check.
2024-09-20 Ingo Klöcker <dev@ingo-kloecker.de>
core: Report failed encryption/signing if gpgtar didn't emit SUCCESS.
+ commit 79ca846993638de359936f86eafaa23f75c9f85d
src/encrypt-sign.c (encrypt_sym_status_handler): Add call of
_gpgme_encrypt_status_handler.
(encrypt_sign_start): Call _gpgme_op_encrypt_init_result with
success_required=1 if archive is created. Always call
_gpgme_op_sign_init_result with success_required=0 because the encrypt
status handler already checks for SUCCESS.
src/encrypt.c (op_data_t): Add success_seen flag.
(_gpgme_encrypt_status_handler): Return error if we didn't see a
required SUCCESS on GPGME_STATUS_EOF. Set success_seen flag on
GPGME_STATUS_SUCCESS.
(encrypt_sym_status_handler): Add call of _gpgme_encrypt_status_handler.
(_gpgme_op_encrypt_init_result): Add argument success_required. Set
success_seen flag if SUCCESS is not required.
(encrypt_start): Call _gpgme_op_encrypt_init_result with
success_required=1 if archive is created.
src/ops.h (_gpgme_op_sign_init_result, _gpgme_op_encrypt_init_result):
Add argument success_required to prototypes.
src/sign.c (op_data_t): Add success_seen flag.
(_gpgme_sign_status_handler): Return error if we didn't see a
required SUCCESS on GPGME_STATUS_EOF. Set success_seen flag on
GPGME_STATUS_SUCCESS.
(sign_init_result): Add argument success_required. Set success_seen
flag if SUCCESS is not required.
(_gpgme_op_sign_init_result): Add argument success_required and
forward it to sign_init_result.
(sign_start): Call sign_init_result with success_required=1 if archive
is created.
2024-09-17 Ingo Klöcker <dev@ingo-kloecker.de>
doc,build: Look for yat2m in $prefix/bin.
+ commit 9747f189620a4c89f88f50c5960baa511eea0a97
* configure.ac: Look for yat2m first in $prefix/bin and then in $PATH.
doc,build: Fix "make install" if yat2m isn't available.
+ commit e4b04ae15363ee8b2159dbc2586fbf93792598f6
* configure.ac: Add hint for YAT2M variable. Set HAVE_YAT2M if yat2m was
found.
* doc/Makefile.am (myman_pages): Set to empty string if yat2m isn't
available
2024-09-10 Sébastien Noel <sebastien@twolife.be>
doc: Provide a man page for gpgme-json.
+ commit 8e7f443045f8e77bb5c841c2b7bfe2e1e3fcceb9
* doc/gpgme-json.texi: New.
* configure.ac: Check for yat2m.
* doc/Makefile.am (YAT2M_OPTIONS): New. Also add all the other man
page stuff similar to what is used in gnupg.
2024-09-09 Werner Koch <wk@gnupg.org>
core: New encryption flags GPGME_ENCRYPT_ADD_RECP and _CHG_RECP.
+ commit cd79fc39736fda6ce38f1f79700cf658c47372f9
* src/gpgme.h.in (GPGME_ENCRYPT_ADD_RECP, GPGME_ENCRYPT_CHG_RECP):
New flag values.
* src/engine-gpg.c (have_cmd_modify_recipients): New.
(gpg_encrypt): Check availability of the feature and prepare command.
* tests/run-encrypt.c (main): New options --add-recipients
and --change-recipients.
2024-09-04 Ingo Klöcker <dev@ingo-kloecker.de>
core: Treat email-only user IDs with upper case letters as email address
+ commit 2264b64b85e6d522fdc5e06d5260f5b7b5414417
* src/key.c (_gpgme_key_append_name): Support email-only user IDs with
upper case letters.
* tests/gpg/t-keylist.c (struct key_info_s): Add algo, length, sec_algo,
sec_length.
(keys): Add expected algo and length for primary and secondary subkeys.
(main): Factor out code for checking a key and the code for the keylist
test. Call the factored out test function and a new test function.
(check_key, test_keylist, key_with_email_only_user_id,
key_info_email_only_user_id,
test_email_only_user_id_with_upper_case_letters): New.
2024-09-02 Ingo Klöcker <dev@ingo-kloecker.de>
build,python: Fix build with setuptools 72.2.0+
+ commit ecd0c86d62351d267bdc9566286c532a394c711b
* lang/python/setup.py.in (BuildExtFirstHack.run): Extend members of the
extension instead of lists that were passed to the extension.
2024-08-29 Ingo Klöcker <dev@ingo-kloecker.de>
cpp: Add pkgconfig file for gpgmepp.
+ commit 569348ee84068ade5e05902dd9d670a1a30c7ca1
* configure.ac: Add substitutions GPGMEPP_PKGCONFIG_LIBS,
GPGMEPP_PKGCONFIG_CFLAGS, GPGMEPP_PKGCONFIG_HOST. Apply them. Configure
gpgmepp.pc file.
* lang/cpp/src/Makefile.am (pkgconfigdir, pkgconfig_DATA): New.
(EXTRA_DIST): Add gpgmepp.pc.in.
* lang/cpp/src/gpgmepp.pc.in: New.
2024-08-28 Ingo Klöcker <dev@ingo-kloecker.de>
cpp: Go with default answer on unknown question by key edit interface.
+ commit 7579c40124c9b287bb67e974bda46e879e1a1ab1
* lang/cpp/src/editinteractor.cpp (edit_interactor_callback_impl):
Send empty string to edit interface if General Error occurred.
2024-08-26 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Add support for new context flag "proc-all-sigs"
+ commit 409e314582273be36b9b6516e89f142f2e99e682
* lang/qt/src/decryptverifyarchivejob.cpp,
lang/qt/src/decryptverifyarchivejob.h (DecryptVerifyArchiveJob): Add
member functions setProcessAllSignatures, processAllSignatures.
* lang/qt/src/decryptverifyarchivejob_p.h
(DecryptVerifyArchiveJobPrivate): Add member m_processAllSignatures.
* lang/qt/src/decryptverifyjob.cpp, lang/qt/src/decryptverifyjob.h
(DecryptVerifyJob): Add member functions setProcessAllSignatures,
processAllSignatures.
* lang/qt/src/decryptverifyjob_p.h (DecryptVerifyJobPrivate): Add member
m_processAllSignatures.
* lang/qt/src/qgpgmedecryptverifyarchivejob.cpp
(decrypt_verify_from_file_name): Add argument "processAllSignatures".
Set context flag "proc-all-sigs" if requested.
(QGpgMEDecryptVerifyArchiveJob::start): Set context flag "proc-all-sigs"
if requested.
(QGpgMEDecryptVerifyArchiveJobPrivate::startIt): Pass
m_processAllSignatures to decrypt_verify_from_file_name.
* lang/qt/src/qgpgmedecryptverifyjob.cpp
(decrypt_verify_from_filename): Add argument "processAllSignatures".
Set context flag "proc-all-sigs" if requested.
(QGpgMEDecryptVerifyJob::start, QGpgMEDecryptVerifyJob::exec): Set
context flag "proc-all-sigs" if requested.
(QGpgMEDecryptVerifyJobPrivate::startIt): Pass
m_processAllSignatures to decrypt_verify_from_filename.
* lang/qt/src/qgpgmeverifydetachedjob.cpp (verify_from_filename): Add
argument "processAllSignatures". Set context flag "proc-all-sigs" if
requested.
(QGpgMEVerifyDetachedJob::start, QGpgMEVerifyDetachedJob::exec): Set
context flag "proc-all-sigs" if requested.
(QGpgMEVerifyDetachedJobPrivate::startIt): Pass
m_processAllSignatures to decrypt_verify_from_filename.
* lang/qt/src/qgpgmeverifyopaquejob.cpp (verify_from_filename): Add
argument "processAllSignatures". Set context flag "proc-all-sigs" if
requested.
(QGpgMEVerifyOpaqueJob::start, QGpgMEVerifyOpaqueJob::exec): Set
context flag "proc-all-sigs" if requested.
(QGpgMEVerifyOpaqueJobPrivate::startIt): Pass
m_processAllSignatures to decrypt_verify_from_filename.
* lang/qt/src/verifydetachedjob.cpp, lang/qt/src/verifydetachedjob.h
(VerifyDetachedJob): Add member functions setProcessAllSignatures,
processAllSignatures.
* lang/qt/src/verifydetachedjob_p.h (VerifyDetachedJobPrivate): Add
member m_processAllSignatures.
* lang/qt/src/verifyopaquejob.cpp, lang/qt/src/verifyopaquejob.h
(VerifyOpaqueJob): Add member functions setProcessAllSignatures,
processAllSignatures.
* lang/qt/src/verifyopaquejob_p.h (VerifyOpaqueJobPrivate): Add
member m_processAllSignatures.
* lang/qt/tests/run-decryptverifyarchivejob.cpp,
lang/qt/tests/run-decryptverifyjob.cpp,
lang/qt/tests/run-verifydetachedjob.cpp,
lang/qt/tests/run-verifyopaquejob.cpp (struct CommandLineOptions): Add
member processAllSignatures.
(parseCommandLine): Add command line option --process-all-signatures.
(main): Pass new option to the job.
2024-08-23 Werner Koch <wk@gnupg.org>
New context flag "proc-all-sigs".
+ commit 37aa9eee7c5696c7b79898a33f9c2883962c2a88
* src/context.h (struct gpgme_context): Add proc_all_sigs.
* src/gpgme.c (gpgme_set_ctx_flag): Add flag "proc-all-sigs".
(gpgme_get_ctx_flag): Ditto.
* src/engine-gpg.c (engine.gpg): Add flags.proc_all_sigs.
(have_option_proc_all_sigs): New.
(gpg_set_engine_flags): Set flag from context.
(build_argv): Add --proc-all-sigs if requested and supported.
2024-08-07 Ingo Klöcker <dev@ingo-kloecker.de>
qt,tests: Add make target to clean the keyring.
+ commit 0174575c8c169cd00f65ed509d91355dea26995f
* lang/qt/tests/Makefile.am (clean-keyring): New target.
qt: Use --quick-set-ownertrust if available.
+ commit a73eee3655e21c60cbc572216a8a90eff5ac6ea5
* lang/qt/src/qgpgmechangeownertrustjob.cpp (set_owner_trust): New.
(QGpgMEChangeOwnerTrustJob::start): Use set_owner_trust if gpg is new
enough.
* lang/qt/tests/t-ownertrust.cpp
(ChangeOwnerTrustTest::testChangeOwnerTrust): Log unexpected error.
tests,json: Remove no longer needed code.
+ commit 668a1344c6b230c6a205f5cf56c8ffc0c1ee9287
* tests/json/t-json.c (parse_version_number, parse_version_string,
compare_versions, check_gpg_version): Remove.
(main): Use have_gpg_version from t-support.h.
qt: Support disabling and enabling of keys.
+ commit 63822343dfaac8b638ef475d441c4379da3a9804
* lang/qt/src/Makefile.am: Add new files.
* lang/qt/src/job.cpp (QuickJob): Move definition of constructor and
destructor and inclusion of the moc file to quickjob.cpp.
* lang/qt/src/qgpgmequickjob.cpp (class QGpgMEQuickJobPrivate): New.
(QGpgMEQuickJob::QGpgMEQuickJob): Instantiate private job class.
(set_key_enabled): New.
* lang/qt/src/quickjob.cpp: New.
* lang/qt/src/quickjob.h (class QuickJob): Add member function
startSetKeyEnabled.
* lang/qt/src/quickjob_p.h: New.
* lang/qt/tests/Makefile.am: Add new test for Qt 5 and Qt 6.
* lang/qt/tests/t-disablekey.cpp: New.
2024-08-06 Ingo Klöcker <dev@ingo-kloecker.de>
cpp: Add support for setting owner trust and for disabling keys.
+ commit d5f612e9685d18313d445799a19ff83e013f1b0a
* lang/cpp/src/context.cpp, lang/cpp/src/context.h (class Context): Add
member functions setOwnerTrust, startSetOwnerTrust, setKeyEnabled,
startSetKeyEnabled.
* lang/cpp/src/context.cpp (owner_trust_to_string): New.
core: New function gpgme_op_setownertrust.
+ commit d804a7a4bc871f38f6cdc2cd63af3ef004580437
* src/Makefile.am (main_sources): Add new file.
* src/context.h (ctx_op_data_id_t): Add OPDATA_SETOWNERTRUST.
* src/engine.c, src/engine.h (_gpgme_engine_op_setownertrust): New.
* src/engine-backend.h (engine_ops): Add 'setownertrust' and adjust all
engine initializers.
* src/engine-gpg.c (gpg_setownertrust): New.
(_gpgme_engine_ops_gpg): Set setownertrust to gpg_setownertrust.
* src/gpgme.h.in (gpgme_op_setownertrust_start, gpgme_op_setownertrust):
New.
* src/gpgme.def, src/libgpgme.vers: Add new functions.
* src/setownertrust.c: New.
* doc/gpgme.texi: Document new functions.
* tests/Makefile.am (noinst_PROGRAMS): Add new test program.
* tests/run-setownertrust.c: New.
* tests/gpg/Makefile.am (c_tests): Add new file. (LDADD): Add
@GPG_ERROR_LIBS@.
* tests/gpg/t-setownertrust.c: New.
* tests/gpg/t-support.h (have_gpg_version): New.
2024-08-05 Ingo Klöcker <dev@ingo-kloecker.de>
w32: Use UTF-8 for localized error descriptions for all threads.
+ commit 9272b0fb6ebc245a37c74e02f1de00dc1ec99723
* src/version.c (do_subsystem_inits) [W32]: Switch gettext to UTF-8
for current thread and all new threads.
2024-07-22 Ingo Klöcker <dev@ingo-kloecker.de>
build,qt: Fix include path in CMake files.
+ commit 5c095553e4344fba63bbf684b2468e36a7b891e8
* lang/qt/src/Makefile.am (QGpgmeConfig.cmake, QGpgmeQt6Config.cmake):
Use new variables includeprefix{5,6} instead of replaced variable
includeprefix.
2024-07-18 Ingo Klöcker <dev@ingo-kloecker.de>
build,qt: Don't put generated camel-case headers in tarball.
+ commit 9ab2ce36f9b9f510d58c2dd9946cd360c963976b
* lang/qt/src/Makefile.am: Change camelcase5include_HEADERS to
nodist_camelcase5include_HEADERS. Change camelcase6include_HEADERS to
nodist_camelcase6include_HEADERS.
core: Remove obsolete source files.
+ commit c69240c843f2b80f47cad97b8ba3b314e104b959
* src/isascii.c, src/putc_unlocked.c: Remove.
build,qt: Allow building Qt 5 bindings and Qt 6 bindings.
+ commit 42e151b34ba1e8c07b1ed2e4e1f6299466e499a1
* configure.ac: Remove "qt" from default_languages. Add "qt5 qt6" to
default_languages. Remove "qt" from help for --enable-languages. Don't
fail anymore if "qt5" and "qt6" are enabled. Warn that "qt" is
deprecated if it was enabled.
* lang/qt/src/Makefile.am (libqgpgme_la, libqgpgmeqt6_la): New.
(lib_LTLIBRARIES): Set Qt 5 and/or Qt 6 variant of libqgpgme.
(AM_CPPFLAGS): Replace with libqgpgme_la_CPPFLAGS for Qt 5 and
libqgpgmeqt6_la_CPPFLAGS for Qt 6.
build,qt: Decouple generation of moc files.
+ commit e6830b58b6de6d4fa02f1055cd0e992c9310b51a
* m4/qt5.m4: Export moc for Qt 5 in variable MOC5. Unset temporary MOC2.
* m4/qt6.m4: Export moc for Qt 6 in variable MOC6.
* lang/qt/src/Makefile.am: Generate .moc5 files from .h files. Generate
.moc forwarding headers in moc5 subfolder. Add moc5 subfolder to include
paths for Qt 5-based qgpgme library. Ditto for Qt 6. Clean up moc5 and
moc6 subfolders.
* lang/qt/tests/Makefile.am: List tests and test runners for Qt 5 and
Qt 6. Generate .moc5 files from .cpp files of tests. Generate .moc
forwarding headers in moc5 subfolder. Generate .hmoc file from
t-support.h directly in moc5 subfolder. Add moc5 subfolder to include
paths for all Qt 5-based tests and runners. Ditto for Qt 6. Specify
sources, LDADD and CPPFLAGS for all tests and test runners for Qt 5 and
Qt 6. Clean up moc5 and moc6 subfolders.
build,qt: Remove include directories on uninstall.
+ commit 899a572b335528aabb769e5832318b0a3e910d08
* lang/qt/src/Makefile.am (uninstall-include-dirs-qt5,
uninstall-include-dirs-qt6): New targets.
(uninstall_include_dirs_qt5, uninstall_include_dirs_qt6): New variables.
(uninstall-local): Replace with...
(uninstall-hook): ...this. Add new uninstall_include_dirs_qt* variables.
build,qt: Decouple handling of include headers.
+ commit 69558f2c0bede869a1caec70b2046a5138043c32
* lang/qt/src/Makefile.am (includeprefix): Replace with...
(includeprefix5, includeprefix6): ...these.
(qgpgmeincludedir): Replace with...
(qgpgme5includedir, qgpgme6includedir): ...these.
(qgpgmeinclude_HEADERS): Replace with...
(qgpgme5include_HEADERS, qgpgme6include_HEADERS): ...these.
(nodist_qgpgmeinclude_HEADERS): Replace with...
(nodist_qgpgme5include_HEADERS, nodist_qgpgme6include_HEADERS): ..these.
(camelcaseincludedir): Replace with...
(camelcase5includedir, camelcase6includedir): ...these.
(camelcaseinclude_HEADERS): Replace with...
(camelcase5include_HEADERS, camelcase6include_HEADERS): ...these.
build,qt: Decouple (un)install of CMake files.
+ commit 576d2db9dd9b7c66686e239ff61ffca606ad9f2a
* lang/qt/src/Makefile.am (install-cmake-files): Rename target to
install-cmake-files-qt5 and install-cmake-files-qt6.
(uninstall-cmake-files): Rename target to uninstall-cmake-files-qt5 and
uninstall-cmake-files-qt6.
(install_cmake_files_qt5, uninstall_cmake_files_qt5,
install_cmake_files_qt6, uninstall_cmake_files_qt6): New variables.
(install-data-local): Depend on both install-cmake-files-qt* targets.
(uninstall-local): Depend on both uninstall-cmake-files-qt* targets.
2024-07-15 Ingo Klöcker <dev@ingo-kloecker.de>
core: Support all keylist modes and fix possible overrun.
+ commit aa15a664b3cf9bf578ba6d22c1c0c327af68b1b4
* src/gpgme-tool.c (gt_get_keylist_mode): Increase NR_KEYLIST_MODES to
number of keylist modes. Add support for GPGME_KEYLIST_MODE_WITH_TOFU,
GPGME_KEYLIST_MODE_WITH_KEYGRIP, GPGME_KEYLIST_MODE_WITH_V5FPR. Write
all modes.
(hlp_keylist_mode): List all supported keylist modes.
(cmd_keylist_mode): Add support for GPGME_KEYLIST_MODE_WITH_TOFU,
GPGME_KEYLIST_MODE_WITH_KEYGRIP, GPGME_KEYLIST_MODE_WITH_V5FPR.
2024-07-10 Ingo Klöcker <dev@ingo-kloecker.de>
build,cpp: Fix include paths in forwarding headers in gpgme++ folder.
+ commit e46748a0d18b8a6d26e6b386f64a99a5cdc6a6e3
* lang/cpp/src/Makefile.am (build rule for copied headers): Write
abs_srcdir instead of srcdir in the generated headers.
2024-07-05 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Replace usage of deprecated Error::asString.
+ commit f6d020e24fb64cfba5e80cef7f80cad15f08cc3c
* lang/qt/src/debug.cpp (operator<<): Use Error::asStdString instead of
Error::asString.
* lang/qt/src/qgpgmedecryptverifyjob.cpp (decrypt_verify),
lang/qt/src/qgpgmenewcryptoconfig.cpp
(QGpgMENewCryptoConfigComponent::sync),
lang/qt/src/qgpgmewkdlookupjob.cpp (startDirmngr): Use QDebug operator
for Error instead of Error::asString.
* lang/qt/src/threadedjobmixin.cpp (_detail::audit_log_as_html): Use
errorAsString instead of Error::asString.
* lang/qt/src/util.h (errorAsString): New.
* lang/qt/tests/run-decryptverifyarchivejob.cpp (main),
lang/qt/tests/run-decryptverifyjob.cpp (main),
lang/qt/tests/run-encryptarchivejob.cpp (main),
lang/qt/tests/run-encryptjob.cpp (main),
lang/qt/tests/run-exportjob.cpp (main),
lang/qt/tests/run-importjob.cpp (main),
lang/qt/tests/run-receivekeysjob.cpp (main),
lang/qt/tests/run-refreshkeysjob.cpp (main),
lang/qt/tests/run-signarchivejob.cpp (main),
lang/qt/tests/run-signjob.cpp (main),
lang/qt/tests/run-verifydetachedjob.cpp (main),
lang/qt/tests/run-verifyopaquejob.cpp (main),
lang/qt/tests/run-wkdrefreshjob.cpp (main),
lang/qt/tests/t-ownertrust.cpp (testChangeOwnerTrust),
lang/qt/tests/t-remarks.cpp (testRemarkOwnKey),
lang/qt/tests/t-tofuinfo.cpp (testTofuPolicy): Use QDebug operator for
Error instead of Error::asString.
* lang/qt/tests/t-changeexpiryjob.cpp (all test functions),
lang/qt/tests/t-trustsignatures.cpp (all test functions),
lang/qt/tests/t-various.cpp (testSignKeyWithoutExpiration,
testSignKeyWithExpiration): Use errorAsString instead of
Error::asString.
cpp: Deprecate Error::asString and update users.
+ commit 28542b14c4df40c7a54bfcf65d7c725bd99fb3e5
* lang/cpp/src/error.h (Error::asString): Mark as deprecated.
* lang/cpp/src/context.cpp (operator<<),
lang/cpp/src/editinteractor.cpp (edit_interactor_callback_impl),
lang/cpp/tests/run-getkey.cpp (main),
lang/cpp/tests/run-keylist.cpp (main),
lang/cpp/tests/run-wkdlookup.cpp (main): Use Error::asStdString instead
of Error::asString.
cpp: Add safer member function returning text describing an error.
+ commit 2656d3ee5b1a905d9fe4dd5c8b2d9737e775df31
* lang/cpp/src/error.h, lang/cpp/src/context.cpp (class Error): New
member function asStdString.
qt: Always include C++ binding headers with gpgme++/ prefix.
+ commit acf574af64d6ace5b090029748ecaf9d87163be7
* lang/qt/src/Makefile.am, lang/qt/tests/Makefile.am (AM_CPPFLAGS):
Add builddir instead of srcdir of C++ bindings as include path.
* lang/qt/src/changeexpiryjob.cpp, lang/qt/src/changeexpiryjob.h,
lang/qt/src/changeownertrustjob.h, lang/qt/src/dataprovider.cpp,
lang/qt/src/dataprovider.h, lang/qt/src/debug.cpp,
lang/qt/src/decryptverifyarchivejob.cpp,
lang/qt/src/decryptverifyarchivejob.h,
lang/qt/src/encryptarchivejob.cpp, lang/qt/src/encryptarchivejob.h,
lang/qt/src/encryptjob.h, lang/qt/src/encryptjob_p.h,
lang/qt/src/filelistdataprovider.cpp,
lang/qt/src/filelistdataprovider.h,
lang/qt/src/hierarchicalkeylistjob.h, lang/qt/src/importjob.cpp,
lang/qt/src/importjob.h, lang/qt/src/importjob_p.h, lang/qt/src/job.h,
lang/qt/src/keyformailboxjob.h, lang/qt/src/keylistjob.h,
lang/qt/src/listallkeysjob.h, lang/qt/src/multideletejob.cpp,
lang/qt/src/qgpgmeaddexistingsubkeyjob.cpp,
lang/qt/src/qgpgmeadduseridjob.cpp, lang/qt/src/qgpgmebackend.cpp,
lang/qt/src/qgpgmechangeexpiryjob.cpp,
lang/qt/src/qgpgmechangeownertrustjob.cpp,
lang/qt/src/qgpgmechangepasswdjob.cpp, lang/qt/src/qgpgmedecryptjob.cpp,
lang/qt/src/qgpgmedecryptjob.h,
lang/qt/src/qgpgmedecryptverifyarchivejob.cpp,
lang/qt/src/qgpgmedecryptverifyarchivejob.h,
lang/qt/src/qgpgmedecryptverifyjob.cpp,
lang/qt/src/qgpgmedecryptverifyjob.h, lang/qt/src/qgpgmedeletejob.cpp,
lang/qt/src/qgpgmedownloadjob.cpp,
lang/qt/src/qgpgmeencryptarchivejob.cpp,
lang/qt/src/qgpgmeencryptarchivejob.h, lang/qt/src/qgpgmeencryptjob.cpp,
lang/qt/src/qgpgmeencryptjob.h, lang/qt/src/qgpgmeexportjob.cpp,
lang/qt/src/qgpgmeimportfromkeyserverjob.cpp,
lang/qt/src/qgpgmeimportfromkeyserverjob.h,
lang/qt/src/qgpgmeimportjob.cpp, lang/qt/src/qgpgmeimportjob.h,
lang/qt/src/qgpgmekeyformailboxjob.h,
lang/qt/src/qgpgmekeygenerationjob.cpp,
lang/qt/src/qgpgmekeygenerationjob.h, lang/qt/src/qgpgmekeylistjob.cpp,
lang/qt/src/qgpgmekeylistjob.h, lang/qt/src/qgpgmelistallkeysjob.cpp,
lang/qt/src/qgpgmelistallkeysjob.h,
lang/qt/src/qgpgmenewcryptoconfig.cpp,
lang/qt/src/qgpgmenewcryptoconfig.h, lang/qt/src/qgpgmequickjob.cpp,
lang/qt/src/qgpgmereceivekeysjob.h,
lang/qt/src/qgpgmerefreshsmimekeysjob.cpp,
lang/qt/src/qgpgmerefreshsmimekeysjob.h,
lang/qt/src/qgpgmerevokekeyjob.cpp,
lang/qt/src/qgpgmesetprimaryuseridjob.cpp,
lang/qt/src/qgpgmesignarchivejob.cpp,
lang/qt/src/qgpgmesignarchivejob.h,
lang/qt/src/qgpgmesignencryptarchivejob.cpp,
lang/qt/src/qgpgmesignencryptarchivejob.h,
lang/qt/src/qgpgmesignencryptjob.cpp,
lang/qt/src/qgpgmesignencryptjob.h, lang/qt/src/qgpgmesignjob.cpp,
lang/qt/src/qgpgmesignjob.h, lang/qt/src/qgpgmesignkeyjob.cpp,
lang/qt/src/qgpgmetofupolicyjob.cpp,
lang/qt/src/qgpgmeverifydetachedjob.cpp,
lang/qt/src/qgpgmeverifydetachedjob.h,
lang/qt/src/qgpgmeverifyopaquejob.cpp,
lang/qt/src/qgpgmeverifyopaquejob.h, lang/qt/src/qgpgmewkdlookupjob.cpp,
lang/qt/src/qgpgmewkdrefreshjob.cpp, lang/qt/src/qgpgmewkdrefreshjob.h,
lang/qt/src/qgpgmewkspublishjob.cpp, lang/qt/src/quickjob.h,
lang/qt/src/signarchivejob.cpp, lang/qt/src/signarchivejob.h,
lang/qt/src/signencryptarchivejob.cpp,
lang/qt/src/signencryptarchivejob.h, lang/qt/src/signencryptjob.h,
lang/qt/src/signencryptjob_p.h, lang/qt/src/signjob.h,
lang/qt/src/signjob_p.h, lang/qt/src/threadedjobmixin.cpp,
lang/qt/src/threadedjobmixin.h, lang/qt/src/tofupolicyjob.h,
lang/qt/src/util.cpp, lang/qt/src/wkdlookupresult.cpp,
lang/qt/src/wkdlookupresult.h, lang/qt/src/wkdrefreshjob_p.h,
lang/qt/tests/run-decryptverifyarchivejob.cpp,
lang/qt/tests/run-decryptverifyjob.cpp,
lang/qt/tests/run-encryptarchivejob.cpp,
lang/qt/tests/run-encryptjob.cpp, lang/qt/tests/run-exportjob.cpp,
lang/qt/tests/run-importjob.cpp, lang/qt/tests/run-keyformailboxjob.cpp,
lang/qt/tests/run-receivekeysjob.cpp,
lang/qt/tests/run-refreshkeysjob.cpp,
lang/qt/tests/run-signarchivejob.cpp, lang/qt/tests/run-signjob.cpp,
lang/qt/tests/run-verifydetachedjob.cpp,
lang/qt/tests/run-verifyopaquejob.cpp,
lang/qt/tests/run-wkdrefreshjob.cpp,
lang/qt/tests/t-addexistingsubkey.cpp,
lang/qt/tests/t-changeexpiryjob.cpp, lang/qt/tests/t-config.cpp,
lang/qt/tests/t-decryptverify.cpp, lang/qt/tests/t-encrypt.cpp,
lang/qt/tests/t-import.cpp, lang/qt/tests/t-keylist.cpp,
lang/qt/tests/t-keylocate.cpp, lang/qt/tests/t-ownertrust.cpp,
lang/qt/tests/t-remarks.cpp, lang/qt/tests/t-revokekey.cpp,
lang/qt/tests/t-setprimaryuserid.cpp, lang/qt/tests/t-support.cpp,
lang/qt/tests/t-support.h, lang/qt/tests/t-tofuinfo.cpp,
lang/qt/tests/t-trustsignatures.cpp, lang/qt/tests/t-various.cpp,
lang/qt/tests/t-verify.cpp, lang/qt/tests/t-wkdlookup.cpp,
lang/qt/tests/t-wkspublish.cpp: Include GpgME++ headers with gpgme++/
prefix.
build,cpp: Create forwarding headers in a gpgme++ folder.
+ commit b7435b31f6e6754480a4e6d2910d74ee15f75fc5
* lang/cpp/src/Makefile.am (copied_headers): New.
(build rule for all copied headers): New.
(BUILT_SOURCES): New.
(CLEANFILES): Add copied_headers.
2024-07-05 NIIBE Yutaka <gniibe@fsij.org>
Fix calling CancelSynchronousIo.
+ commit 95bd4fa813023a56c29a43bdb9ad9777362b389b
* src/w32-util.c (_gpgme_w32_cancel_synchronous_io): Use HANDLE.
Fix printing size_t and off_t value for LLP64 Windows.
+ commit de6068450094783b9ed68ec9553ea59d02a208ff
* src/debug.h (_trace_sysres_off_t): Use 'z' length specifier.
* src/w32-io.c (_gpgme_io_read): Likewise.
(writer, _gpgme_io_write): Likewise.
Remove ath.h and ath.c.
+ commit 8b4171680c325d63952c9026aa7fa35f4b23e351
* src/Makefile.am (system_components): We don't use ath.h any more.
(main_sources): Remove ath.h and ath.c.
Don't use ath_self, but get thread ID directly.
+ commit 9c276e762a25262cd635e97f5aad4b09fa41b427
* src/debug.c [HAVE_W32_SYSTEM or __linux] (tid_log_callback): Use
native thread ID call for Windows and Linux, ifdef-out-ed.
(debug_init): Only call gpgrt_log_set_pid_suffix_cb for relevant
systems.
2024-07-01 NIIBE Yutaka <gniibe@fsij.org>
Use gpgrt_b64dec in libgpg-error.
+ commit ec2c6dd8bc49e010810cb8ad403a9b8dad5d399e
* src/b64dec.c: Remove.
* src/Makefile.am (main_sources): Remove b64dec.c.
* src/data-identify.c (pgp_binary_detection): Use gpgrt_b64dec in
libgpg-error.
2024-06-28 Ingo Klöcker <dev@ingo-kloecker.de>
cpp: Remove obsolete files.
+ commit 6ed5c9a38aedcda9e67607c7474042f28121af6e
* lang/cpp/src/context_glib.cpp, lang/cpp/src/context_qt.cpp: Remove.
2024-06-18 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Allow appending a detached signature to an existing file.
+ commit 7d5df0bf0d86391151911160db24441966b6d938
* lang/qt/src/qgpgmesignjob.cpp (sign_to_filename): Add argument
"appendSignature". Append new detached signature to an existing file if
requested.
* lang/qt/src/signjob.cpp, lang/qt/src/signjob.h (class SignJob): Add
member functions setAppendSignature, appendSignatureEnabled.
* lang/qt/src/signjob_p.h (struct SignJobPrivate): Add member
m_appendSignature.
* lang/qt/tests/run-signjob.cpp (struct CommandLineOptions): Add members
signingFlags, appendSignature. Initialize armor.
(parseCommandLine): Add command line options --detach-sign and --append.
(main): Do not exit if output file exists and append is enabled.
Pass new options to the job.
2024-06-17 Ingo Klöcker <dev@ingo-kloecker.de>
qt,build: Install headers for Qt 5 and Qt 6 in different locations.
+ commit 09827ffc7745e7dc4275f1c6e46531a959be1f71
* lang/qt/src/Makefile.am (includeprefix): New.
(qgpgmeincludedir, camelcaseincludedir): Add $(includeprefix).
(QGpgmeConfig.cmake, QGpgmeQt6Config.cmake): Add $(includeprefix) to
replacement for @resolved_includedir@.
2024-06-14 NIIBE Yutaka <gniibe@fsij.org>
Update gpg-error.m4 again for spell fix.
+ commit 53c367629a6360719b6247d148174c6c66f52020
2024-06-13 Ingo Klöcker <dev@ingo-kloecker.de>
qt,tests: Fix deprecation warnings (in Qt 6 build)
+ commit c52e1943a72d42cc7dfbfc82b72345092d8f05c0
* lang/qt/tests/t-tofuinfo.cpp (TofuInfoTest::signAndVerify,
TofuInfoTest::testTofuPolicy): Use range-based for loop instead of Qt's
deprecated foreach.
qt: Specify import options as list of strings instead of as string.
+ commit 60b96d149c71f7f5f928944e65732671d6b9eacc
* lang/qt/src/importjob.cpp, lang/qt/src/importjob.h (setImportOptions):
Change type of argument "options" to QStringList.
(importOptions): Change return type to QStringList.
* lang/qt/src/importjob_p.h (struct ImportJobPrivate): Change type of
member m_importOptions to QStringList.
* lang/qt/src/qgpgmeimportjob.cpp (import_qba): Change type of argument
"importOptions" to QStringList. Join list of import options with ','
when setting the "import-options" context flag.
* lang/qt/tests/t-import.cpp (ImportTest::testImportWithImportOptions):
Adapt to API change.
2024-06-13 NIIBE Yutaka <gniibe@fsij.org>
m4: Update m4 files.
+ commit 6c90ec7be23532184f54cf59675130be6d2ae55a
* m4/gpg-error.m4: Update libgpg-error master.
* m4/libassuan.m4: Update libassuan master.
gpgme.m4: Fix setting/using GPG_ERROR_CONFIG.
+ commit 14b035034ab52c73f8d1aab2c475b3e8709600b4
gpgm4.m4 (_AM_PATH_GPGRT_CONFIG): Don't set GPG_ERROR_CONFIG and
gpg_error_config_version.
2024-06-12 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Allow specifying import options when importing keys.
+ commit 2187a4de8c1731d8621a4b056baf84ee29e0ff00
* lang/qt/src/importjob.cpp, lang/qt/src/importjob.h (class ImportJob):
Add member functions setImportOptions and importOptions.
* lang/qt/src/importjob_p.h (struct ImportJobPrivate): Add member
m_importOptions.
* lang/qt/src/qgpgmeimportjob.cpp (import_qba): Add arg importOptions
and adjust the callers. Set import options context flag.
* lang/qt/tests/t-import.cpp (ImportTest): Add member function
testImportWithImportOptions.
tests: Add --import-filter option to usage info of run-import.
+ commit 5b73b0722a136db9fa7b9bb96bae27b8cfef5987
* tests/run-import.c (show_usage): Add option --import-filter.
core: Allow setting import options when importing keys.
+ commit 3b9815bd8ad723445128ae99883be0072ae389a6
* src/context.h (struct gpgme_context): New field import_options.
* src/engine-backend.h (struct engine_ops): Add arg import_options to
field 'import'.
* src/engine-gpg.c (gpg_import): Add arg import_options and pass option
--import-options with argument value to gpg.
* src/engine-gpgsm.c (gpgsm_import): Add dummy arg import_options.
* src/engine.c (_gpgme_engine_op_import): Add arg import_options and
pass option to import function of engine.
* src/engine.h (_gpgme_engine_op_import): Add arg import_options.
* src/gpgme.c (gpgme_release): Free 'import_options'.
(gpgme_set_ctx_flag, gpgme_get_ctx_flag): New flag "import-options".
* src/import.c (_gpgme_op_import_start, _gpgme_op_import_keys_start,
_gpgme_op_receive_keys_start): Pass import options stored in context to
_gpgme_engine_op_import.
* tests/run-import.c (show_usage, main): Add option --import-options.
qt,doc: Fix typos.
+ commit 307256d277d86fac768f09d7df09a5f62b680469
* lang/qt/README: Fix typos.
2024-06-10 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Align license of some Makefiles with license of other Makefiles.
+ commit 87319b3fc7667b271f7803132e3cbaa50f3344e4
* lang/qt/doc/Makefile.am, lang/qt/tests/Makefile.am: Change license
from LGPL to GPL.
qt: Fix license headers of Makefiles.
+ commit 29be63ae37755f1b16607864df0df71df4059549
* lang/qt/Makefile.am, lang/qt/src/Makefile.am: Files are part of
QGpgme. Fix wrong package name (GPGME-CL -> QGpgME). Replace references
to LGPL with references to GPL.
qt: Fix license headers of CMake config files.
+ commit 09cc0c81f745ef1e9eb802a7f062f62f621e9301
* lang/qt/src/QGpgmeConfig-w32.cmake.in.in,
lang/qt/src/QGpgmeConfig.cmake.in.in,
lang/qt/src/QGpgmeConfigVersion.cmake.in: Files are part of QGpgME.
Fix copy&paste error (GPGME-CL -> QGpgME). Fix reference to license
to check for details.
* lang/qt/src/QGpgmeQt6Config-w32.cmake.in.in,
lang/qt/src/QGpgmeQt6Config.cmake.in.in,
lang/qt/src/QGpgmeQt6ConfigVersion.cmake.in: Files are part of QGpgME.
Fix reference to license to check for details.
qt: Fix license headers of dataprovider.*
+ commit 967b6b726eb645e682cdb2a7b66b74307bd1c03d
* lang/qt/src/dataprovider.cpp, lang/qt/src/dataprovider.h: Change
license header from LGPL to GPL.
cpp: Remove commented out and disabled code.
+ commit 4136928f0d894e873eb0ecb0bc79931a023ba32c
* lang/cpp/src/configuration.cpp: Remove disabled, abandoned code.
* lang/cpp/src/context.cpp: Remove commented out, obsolete code.
2024-06-04 Ingo Klöcker <dev@ingo-kloecker.de>
core,w32: Pass file names with forward slashes to gpg and gpgtar.
+ commit 25dd284b0c42ba4ad434ce43f6ac93f24acd6498
src/conversion.c, src/util.h (_gpgme_replace_backslashes): New.
src/engine-gpg.c (_add_arg): Add argument file_name. On Windows, replace
backslashes in file name arguments with forward slashes.
(add_arg_ext, add_arg_with_locp, add_arg, add_arg_pfx, add_gpg_arg,
add_gpg_arg_with_value, add_arg_len): Adjust call of _add_arg.
(add_file_name_arg, add_file_name_arg_len, add_gpg_arg_with_file_name):
New.
(add_file_name_arg_or_data): Call add_file_name_arg for file name.
(gpg_new): Call add_gpg_arg_with_file_name for home directory.
(gpg_decrypt): Call add_file_name_arg for output directory and output
file name.
(append_args_from_recipients_string): Call add_file_name_arg_len for
recipients file name.
(gpg_encrypt): Call add_file_name_arg for output file name, base
directory and input file name. Call add_gpg_arg_with_file_name to set
file name stored in message.
(gpg_encrypt_sign): Call add_file_name_arg for output file name, base
directory and input file name. Call add_gpg_arg_with_file_name to set
file name stored in message.
(gpg_sign): Call add_file_name_arg for output file name, base directory
and input file name. Call add_gpg_arg_with_file_name to set file name
stored in message.
(gpg_verify): Call add_file_name_arg for output directory and output
file name.
2024-05-29 Ingo Klöcker <dev@ingo-kloecker.de>
build,python: Fix make distcheck for Python 3.9+
+ commit 1245b090126b8e2eeeda599b01b6b085d3607353
* lang/python/Makefile.am (uninstall-local): Remove installed .egg
folders.
build,python: Remove support for Python 3.4, 3.5, 3.7.
+ commit 09d81da665894997d654dd4add505302654a4294
* configure.ac: Don't look for Python 3.4, 3.5, 3.7 anymore.
2024-05-29 Ben Greiner <code@bnavigator.de>
build,python: Build Python bindings without distutils.
+ commit 5844d9e700239ad10a5956cd7789bd02360bb0fa
* m4/python.m4: Add python3.12 and 3.11 as valid interpreters, remove
EOL 3.4, 3.5, 3.7 (keep 3.6 because some distributions still ship and
maintain it).
* lang/python/Makefile.am (clean-local): Remove dist and gpg.egg-info
created by Python 3.9+ on make install.
* lang/python/setup.py.in: switch from distutils to setuptools where
possible, remove obsolete and deprecated -py3 option of swig, add
classifiers up to 3.12, remove 3.4, 3.5, 3.7.
* lang/python/doc/src/gpgme-python-howto.org: replace distutils with
setuptools
* lang/python/examples/howto/advanced/cython/setup.py: replace distutils
with setuptools
2024-05-24 Ingo Klöcker <dev@ingo-kloecker.de>
tests: Add new files to distribution.
+ commit 986c5f0b947559b76f9997d238bb4231a79eeee1
* tests/json/Makefile.am (EXTRA_DIST): Add files added with f2575b63.
cpp: Fix includes in public headers.
+ commit 6aa359b1e8d468d4f2f9145666ab6d916f453244
* lang/cpp/src/defaultassuantransaction.h,
lang/cpp/src/gpgadduserideditinteractor.h,
lang/cpp/src/gpgagentgetinfoassuantransaction.h,
lang/cpp/src/gpggencardkeyinteractor.h,
lang/cpp/src/gpgsetexpirytimeeditinteractor.h,
lang/cpp/src/gpgsetownertrusteditinteractor.h,
lang/cpp/src/gpgsignkeyeditinteractor.h,
lang/cpp/src/interfaces/assuantransaction.h,
lang/cpp/src/interfaces/dataprovider.h,
lang/cpp/src/interfaces/statusconsumer.h,
lang/cpp/src/scdgetinfoassuantransaction.h,
lang/cpp/src/statusconsumerassuantransaction.h,
lang/cpp/src/trustitem.h: Use #include "foo.h" instead of
#include <foo.h> for own headers.
2024-05-22 Tobias Fella <tobias.fella@gnupg.com>
qt,cpp: Implement adding ADSKs to existing keys.
+ commit 15718cb2954d9df9af979f574cec859feb2ba052
* lang/cpp/src/context.cpp: Add functions for adding ADSKs.
* lang/cpp/src/context.h: Ditto.
* lang/qt/src/qgpgmequickjob.cpp: Add implementation of ADSK job.
* lang/qt/src/qgpgmequickjob.h: Ditto.
* lang/qt/src/quickjob.h: Add job for adding ADSKs.
core: Implement adding ADSKs through gpgme_createsubkey.
+ commit e42b72bc2ba0b5cacfd5df625df6011b8819fbce
* src/engine-gpg.c: Add and use function for adding ADSKs.
* src/genkey.c: Prevent error due to no status line.
* src/gpgme.h.in: Add flag GPGME_CREATE_ADSK
* doc/gpgme.texi: Add documentation for ADSKs
* tests/run-genkey.c: Add test for adding ADSKs
2024-05-21 Ingo Klöcker <dev@ingo-kloecker.de>
cpp: Add information about revocation keys to Key.
+ commit 90eb80134b2d7720b187a6b7fd16f40f23cf1022
* lang/cpp/src/gpgmefw.h (gpgme_revocation_key_t): New forward
declaration.
* lang/cpp/src/key.cpp, lang/cpp/src/key.h (class Key): New methods
revocationKey, numRevocationKeys, revocationKeys.
(class RevocationKey): New.
(swap): New overload for RevocationKey.
(operator<<): New overload for RevocationKey.
* lang/cpp/src/key.cpp (operator<<): Add information about revocation
keys to the output stream for Key.
* lang/cpp/tests/run-keylist.cpp (main): Don't output Key if nextKey
failed, e.g. at the end of the key listing.
json: Add information about revocation keys to key list result.
+ commit f2575b6313aeb23d867682856f7842704786349e
* src/gpgme-json.c (revocation_key_to_json): New.
(key_to_json): Add list of revocation keys.
* tests/json/Makefile.am (pubring-stamp): Import new pub key.
* tests/json/key-with-revokers.asc: New.
* tests/json/t-json.c (tests): Add "t-keylist-revokers".
* tests/json/t-keylist-revokers.in.json,
tests/json/t-keylist-revokers.in.json: New.
core: Add information about revocation keys to keys.
+ commit adadfac997a812699049cd9a5f484cbcabff5bfd
* src/gpgme.h.in (struct _gpgme_revocation_key,
gpgme_revocation_key_t): New.
(struct _gpgme_key): Add fields 'revkeys', '_last_revkey'.
* src/key.c (_gpgme_key_add_rev_key): New.
(gpgme_key_unref): Free revkeys.
* src/keylist.c (keylist_colon_handler): Parse rvk lines.
* src/ops.h (_gpgme_key_add_rev_key): New.
* tests/run-keylist.c (main): Print revocation key info.
2024-05-21 Werner Koch <wk@gnupg.org>
tests: Fix segv in t-json.c.
+ commit ac4bf86bb65a1e228550cce9314ad17239343c5d
* tests/json/t-json.c (test_contains): Avoid calling recusivly with no
child.
tests: Avoid some compiler warnings.
+ commit 55a1ae4163ecc97601c8d3d216452b65eec405af
* tests/gpg/t-support.h (fail_with_syserr): New.
(check_data): Use it to avoid compiler warnings.
* tests/run-support.h (fail_with_syserr): New.
2024-05-21 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Avoid bogus stringop-overread warning.
+ commit c933269d3a59e9a36587406ed2c130ea1b292852
* lang/qt/src/threadedjobmixin.cpp (_detail::audit_log_as_html): Use
QByteArray overload of QString::fromUtf8.
qt: Fix warning about missing return.
+ commit 333241b286e2c164640812cf39f7e8eff32914d2
* lang/qt/src/qgpgmeexportjob.cpp (ExportJob::exec): Return a value and
remove unused argument names.
2024-05-21 Werner Koch <wk@gnupg.org>
core: speedup gpgme_get_key.
+ commit 73403a8ba00303b95c0e39fe3d2b78c913b0ca98
* src/engine.c (_gpgme_set_engine_info): Change engine_get_version.
2024-05-17 NIIBE Yutaka <gniibe@fsij.org>
m4: Update libassuan.m4 from master.
+ commit 0f5e8182e7cd6b6c4e57c503bbd7ab20f788d779
* m4/libassuan.m4: Update.
2024-05-16 Ingo Klöcker <dev@ingo-kloecker.de>
Require at least libgpg-error 1.47.
+ commit 3e3db5784ff0f3f06345fc3dbf7b0903f52b3fd5
* configure.ac (NEED_GPG_ERROR_VERSION): Require 1.47.
2024-05-16 NIIBE Yutaka <gniibe@fsij.org>
gpgme.m4: Set $host correctly always.
+ commit 87061c0260bb2a129a98bd9445cdc4220f542c15
* src/gpgme.m4 (AM_PATH_GPGME): Add AC_CANONICAL_HOST.
2024-05-15 Ingo Klöcker <dev@ingo-kloecker.de>
tests: Fix test after changed behavior of gpgme_op_verify.
+ commit a73a41109fff3b6d3f81fa29d353419ae45f6dda
* tests/gpg/t-verify.c (main): Change assertion of test.
2024-05-14 NIIBE Yutaka <gniibe@fsij.org>
gpgme.m4: Update _AM_PATH_GPGRT_CONFIG macro from gpg-error.m4.
+ commit 882ccc8ea77a8bcb7628674e9fad6541f915094b
* src/gpgme.m4 (_AM_PATH_GPGRT_CONFIG): Update.
2024-04-05 Ingo Klöcker <dev@ingo-kloecker.de>
cpp: Handle smart card op failure status messages.
+ commit e4a95746ada20d41161c3cdfb36d5167e2712098
* lang/cpp/src/editinteractor.cpp (parse_sc_op_failure): New.
(CallbackHelper::edit_interactor_callback_impl): Parse failure code on
GPGME_STATUS_SC_OP_FAILURE status.
(sc_op_failure_to_error): New.
2024-03-11 Ingo Klöcker <dev@ingo-kloecker.de>
core: Check STATUS_FAILURE in import operations.
+ commit 7158397c098b8527c97c6bf350c2ebd6c0012594
* src/import.c (op_data_t): Add failure_code.
(_gpgme_import_status_handler): Set it. Return it on EOF.
2024-01-22 Tobias Fella <tobias.fella@gnupg.com>
qt: Add function for synchronously executing ExportJob.
+ commit 47f3d92bf340f2a24b3c837a3afa5e1890b413ac
* lang/qt/src/exportjob: Add exec function.
* lang/qt/src/qgpgmeexportjob.cpp: Implement exec function.
* lang/qt/src/qgpgmeexportjob.h: Override exec function.
2024-01-19 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Remove superfluous virtual overrides and member variables.
+ commit 0011412193fdf1e91fec442d32e4b47a56276867
* lang/qt/src/qgpgmeaddexistingsubkeyjob.cpp
(QGpgMEAddExistingSubkeyJob::exec): Remove call of resultHook.
* lang/qt/src/qgpgmedecryptjob.cpp (QGpgMEDecryptJob::exec): Remove
call of resultHook.
(QGpgMEDecryptJob::resultHook): Remove.
* lang/qt/src/qgpgmedecryptjob.h (QGpgMEDecryptJob): Remove resultHook
override. Remove member mResult.
* lang/qt/src/qgpgmedecryptverifyjob.cpp (QGpgMEDecryptVerifyJob::exec):
Remove call of resultHook.
(QGpgMEDecryptVerifyJob::resultHook): Remove.
* lang/qt/src/qgpgmedecryptverifyjob.h (QGpgMEDecryptVerifyJob): Remove
resultHook override. Remove member mResult.
* lang/qt/src/qgpgmeencryptjob.cpp (QGpgMEEncryptJob::exec): Remove
call of resultHook.
(QGpgMEEncryptJob::resultHook): Remove.
* lang/qt/src/qgpgmeencryptjob.h (QGpgMEEncryptJob): Remove resultHook
override. Remove member mResult.
* lang/qt/src/qgpgmegpgcardjob.cpp (QGpgMEGpgCardJob::exec): Remove
call of resultHook.
* lang/qt/src/qgpgmeimportfromkeyserverjob.cpp
(QGpgMEImportFromKeyserverJob::exec): Remove call of resultHook.
(QGpgMEImportFromKeyserverJob::resultHook): Remove.
* lang/qt/src/qgpgmeimportfromkeyserverjob.h
(QGpgMEImportFromKeyserverJob): Remove resultHook override. Remove
member mResult.
* lang/qt/src/qgpgmeimportjob.cpp (QGpgMEImportJob::exec): Remove call
of resultHook.
(QGpgMEImportJob::resultHook): Remove.
* lang/qt/src/qgpgmeimportjob.h (QGpgMEImportJob): Remove resultHook
override. Remove member mResult.
* lang/qt/src/qgpgmekeyformailboxjob.cpp (QGpgMEKeyForMailboxJob::exec):
Remove call of resultHook.
* lang/qt/src/qgpgmekeylistjob.cpp (QGpgMEKeyListJob::QGpgMEKeyListJob):
Remove initialization of mResult.
(QGpgMEKeyListJob::resultHook): Do not set (removed) mResult.
* lang/qt/src/qgpgmekeylistjob.h (QGpgMEKeyListJob): Remove member
mResult.
* lang/qt/src/qgpgmelistallkeysjob.cpp
(QGpgMEListAllKeysJob::QGpgMEListAllKeysJob): Remove initialization of
mResult.
(QGpgMEListAllKeysJob::exec): Remove call of resultHook.
(QGpgMEListAllKeysJob::resultHook): Remove.
* lang/qt/src/qgpgmelistallkeysjob.h (QGpgMEListAllKeysJob): Remove
resultHook override. Remove member mResult.
* lang/qt/src/qgpgmereceivekeysjob.cpp (QGpgMEReceiveKeysJob::exec):
Remove call of resultHook.
(QGpgMEReceiveKeysJob::resultHook): Remove.
* lang/qt/src/qgpgmereceivekeysjob.h (QGpgMEReceiveKeysJob): Remove
resultHook override. Remove member mResult.
* lang/qt/src/qgpgmerevokekeyjob.cpp (QGpgMERevokeKeyJob::exec): Remove
call of resultHook.
* lang/qt/src/qgpgmesignencryptjob.cpp (QGpgMESignEncryptJob::exec):
Remove call of resultHook.
(QGpgMESignEncryptJob::resultHook): Remove.
* lang/qt/src/qgpgmesignencryptjob.h (QGpgMESignEncryptJob): Remove
resultHook override. Remove member mResult.
* lang/qt/src/qgpgmesignjob.cpp (QGpgMESignJob::exec): Remove call of
resultHook.
(QGpgMESignJob::resultHook): Remove.
* lang/qt/src/qgpgmesignjob.h (QGpgMESignJob): Remove resultHook
override. Remove member mResult.
* lang/qt/src/qgpgmeverifydetachedjob.cpp
(QGpgMEVerifyDetachedJob::exec): Remove call of resultHook.
(QGpgMEVerifyDetachedJob::resultHook): Remove.
* lang/qt/src/qgpgmeverifydetachedjob.h (QGpgMEVerifyDetachedJob):
Remove resultHook override. Remove member mResult.
* lang/qt/src/qgpgmeverifyopaquejob.cpp (QGpgMEVerifyOpaqueJob::exec):
Remove call of resultHook.
(QGpgMEVerifyOpaqueJob::resultHook): Remove.
* lang/qt/src/qgpgmeverifyopaquejob.h (QGpgMEVerifyOpaqueJob): Remove
resultHook override. Remove member mResult.
* lang/qt/src/qgpgmewkdlookupjob.cpp (QGpgMEWKDLookupJob::exec):
Remove call of resultHook.
qt: Remove left-over mentions of showErrorDialog.
+ commit eae22d9a484f2fba0e7250450df4d2f565f10731
* lang/qt/src/qgpgmedecryptjob.cpp,
lang/qt/src/qgpgmeimportfromkeyserverjob.cpp,
lang/qt/src/qgpgmeimportjob.cpp: Remove obsolete comment.
* lang/qt/src/qgpgmekeylistjob.cpp,
lang/qt/src/qgpgmelistallkeysjob.cpp: Remove long obsolete, #if 0'ed out
definitions of showErrorDialog.
2024-01-16 Ingo Klöcker <dev@ingo-kloecker.de>
build: Re-add still needed custom changes to Python autoconf macro.
+ commit cc1f2b5acb8484edf0a722dcccac435687576a44
* m4/ax_python_devel.m4: Do not emit 'HAVE_PYTHON'.
build: Update Python autoconf macro.
+ commit e3ae88267f03b435ec7d9e80ae1e2891e1f118e6
* configure.ac: Call AX_PYTHON_DEVEL with new "optional" argument.
* m4/ax_python_devel.m4: Replace with current version from the autoconf
archive.
2024-01-15 Werner Koch <wk@gnupg.org>
doc: Add a deprecated warning to gpgme_op_delete.
+ commit 18388f93abb064b2bcd1010242b47eb696dabf6d
2024-01-09 Ingo Klöcker <dev@ingo-kloecker.de>
cpp,tests: Launch dirmngr with gpg-conf.
+ commit 85c7a94d635d1eb134a51fb6d1ab4dc400a8fc1c
* lang/cpp/tests/run-wkdlookup.cpp (main): Replace backslashes with
forward slashes in homedir returned by GpgME::dirInfo. Use "gpgconf
--launch dirmngr" to start dirmngr.
qt: Pass home directory with forward slashes when launching dirmngr.
+ commit 7e520213c09dc1ce4f1431e0f32054a1b7cd1368
* lang/qt/src/qgpgmewkdlookupjob.cpp (startDirmngr): Replace backslashes
with forward slashes in homedir returned by GpgME::dirInfo.
2024-01-08 Tobias Fella <tobias.fella@gnupg.com>
qt: Fix validity for (sub)keys generated using QGpgMEQuickJob.
+ commit d60d1b7f79bd989a23f36233225abea0513ad10b
* lang/qt/src/qgpgmequickjob.cpp: Fix expiration calculation
2024-01-05 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Support verification of detached signatures directly from files.
+ commit c631622484dc9c00a05e3c25c53ef263db83b381
* lang/qt/src/Makefile.am: Add new files.
* lang/qt/src/job.cpp (VerifyDetachedJob): Move definition of
constructor and destructor and inclusion of the moc file to the
corresponding .cpp file.
* lang/qt/src/verifydetachedjob.cpp: New.
* lang/qt/src/verifydetachedjob.h (VerifyDetachedJob): Add member
functions setSignatureFile, signatureFile, setSignedFile, signedFile.
* lang/qt/src/verifydetachedjob_p.h: New.
* lang/qt/src/qgpgmeverifydetachedjob.cpp (class
QGpgMEVerifyDetachedJobPrivate): New.
(QGpgMEVerifyDetachedJob::QGpgMEVerifyDetachedJob): Instantiate private
job class.
(verify_from_filename): New.
* lang/qt/tests/Makefile.am: Add new test program.
* lang/qt/tests/run-verifydetachedjob.cpp: New.
2023-12-22 Ingo Klöcker <dev@ingo-kloecker.de>
core: Tell gpg that we want to verify signed data.
+ commit 1dc44b7c5b9253206af527721212d1f55532a7ee
* src/engine-gpg.c (gpg_verify): Add "--verify" to command line.
qt: Support verification of opaque signed data directly to/from files.
+ commit e77a8ac0cc2ef356ef7e9da2793329432caf7406
* lang/qt/src/Makefile.am: Add new files.
* lang/qt/src/job.cpp (VerifyOpaqueJob): Move definition of constructor
and destructor and inclusion of the moc file to the corresponding .cpp
file.
* lang/qt/src/verifyopaquejob.cpp: New.
* lang/qt/src/verifyopaquejob.h (VerifyOpaqueJob): Add member
functions setInputFile, inputFile, setOutputFile, outputFile.
* lang/qt/src/verifyopaquejob_p.h: New.
* lang/qt/src/qgpgmeverifyopaquejob.cpp (class
QGpgMEVerifyOpaqueJobPrivate): New.
(QGpgMEVerifyOpaqueJob::QGpgMEVerifyOpaqueJob): Instantiate private
job class.
(verify_from_filename): New.
* lang/qt/tests/Makefile.am: Add new test program.
* lang/qt/tests/run-verifyopaquejob.cpp: New.
qt: Support decryption (with verification) directly to/from files.
+ commit 20b32e03503f8c3187508d9cd5ba07db2b03f014
* lang/qt/src/Makefile.am: Add new files.
* lang/qt/src/job.cpp (DecryptVerifyJob): Move definition of constructor
and destructor and inclusion of the moc file to the corresponding .cpp
file.
* lang/qt/src/decryptverifyjob.cpp: New.
* lang/qt/src/decryptverifyjob.h (DecryptVerifyJob): Add member
functions setInputFile, inputFile, setOutputFile, outputFile.
* lang/qt/src/decryptverifyjob_p.h: New.
* lang/qt/src/qgpgmedecryptverifyjob.cpp (class
QGpgMEDecryptVerifyJobPrivate): New.
(QGpgMEDecryptVerifyJob::QGpgMEDecryptVerifyJob): Instantiate private
job class.
(decrypt_verify_from_filename): New.
* lang/qt/tests/Makefile.am: Add new test program.
* lang/qt/tests/run-decryptverifyjob.cpp: New.
2023-12-21 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Support writing/reading signed/encrypted files directly to/from file
+ commit a44d84772d6197dfb977b411f6eb7cb29b08471b
* lang/qt/src/Makefile.am: Add new files.
* lang/qt/src/job.cpp (EncryptJob, SignJob, SignEncryptJob): Move
definition of constructor and destructor and inclusion of the moc file
to the corresponding .cpp files.
* lang/qt/src/encryptjob.cpp (EncryptJob): Define constructor. Define
destructor as default. Include moc file.
* lang/qt/src/encryptjob.cpp, lang/qt/src/encryptjob.h (EncryptJob):
Add member functions setRecipients, recipients, setInputFile, inputFile,
setOutputFile, outputFile, setEncryptionFlags, encryptionFlags.
* lang/qt/src/encryptjob_p.h (EncryptJobPrivate): Add members
m_recipients, m_inputFilePath, m_outputFilePath, m_encryptionFlags.
* lang/qt/src/qgpgmeencryptjob.cpp (encrypt_to_filename): New.
(QGpgMEEncryptJobPrivate::startIt): Start the job with the values
from the member variables.
* lang/qt/src/qgpgmesignencryptjob.cpp (sign_encrypt_to_filename): New.
(QGpgMESignEncryptJobPrivate::startIt): Start the job with the values
from the member variables.
* lang/qt/src/qgpgmesignjob.cpp (class QGpgMESignJobPrivate): New.
(QGpgMESignJob::QGpgMESignJob): Instantiate private job class.
(sign_to_filename): New.
* lang/qt/src/signencryptjob.cpp (SignEncryptJob): Define constructor.
Define destructor as default. Include moc file.
* lang/qt/src/signencryptjob.cpp, lang/qt/src/signencryptjob.h
(SignEncryptJob): Add member functions setSigners, signers,
setRecipients, recipients, setInputFile, inputFile, setOutputFile,
outputFile, setEncryptionFlags, encryptionFlags.
* lang/qt/src/signencryptjob_p.h (SignEncryptJobPrivate): Add members
m_signers, m_recipients, m_inputFilePath, m_outputFilePath,
m_encryptionFlags.
* lang/qt/src/signjob.cpp: New.
* lang/qt/src/signjob.h (SignJob): Add member functions setSigners,
signers, setInputFile, inputFile, setOutputFile, outputFile,
setSigningFlags, signingFlags.
* lang/qt/src/signjob_p.h: New.
* lang/qt/tests/Makefile.am: Add new test programs.
* lang/qt/tests/run-encryptjob.cpp: New.
* lang/qt/tests/run-signjob.cpp: New.
qt: Remove dead code.
+ commit b166958b868c551fe0b4e4ac33e6e34ddf2f7ee1
* lang/qt/src/qgpgmeencryptjob.cpp,
lang/qt/src/qgpgmesignencryptjob.cpp, lang/qt/src/qgpgmesignjob.cpp:
Remove long commented out showErrorDialog member function definitions.
2023-12-19 Ingo Klöcker <dev@ingo-kloecker.de>
cpp: Support new flags for direct signing/encryption of files.
+ commit 60c0fd7c955d6b8c1d0d7be3d3c65257c6418a26
* lang/cpp/src/context.h (enum EncryptionFlags): Add constant
EncryptFile.
* lang/cpp/src/global.h (enum SignatureMode): Add constant SignFile.
* lang/cpp/src/context.cpp (sigflags2sigflags): Handle new flag
SignFile.
(encryptflags2encryptflags): Handle new flag EncryptFile.
(operator<<): Add new flags to the corresponding debug streams.
* lang/cpp/src/signingresult.cpp (CreatedSignature::mode): Handle
new flag SignFile (even if it cannot occur).
core: Support writing the decrypt/verify output directly to a file.
+ commit 5efd3486a9fa9f4b0f383aca2f2f01412e73237c
* src/engine-gpg.c (gpg_decrypt): Pass output file name to gpg if output
has file name set.
(gpg_verify): Ditto.
* tests/run-decrypt.c (show_usage): New option --output.
(main): Parse new option. Set file name on output if --output is given.
Do not print output if --output is given.
* tests/run-verify.c (show_usage): New option --output.
(main): Parse new option. Set file name on output if --output is given.
core: Support direct signing of file with gpg.
+ commit 963ace1f9f39f09fee522b996e05d42040b1f4b4
* src/gpgme.h.in (GPGME_SIG_MODE_FILE): New signature mode flag.
* src/engine-gpg.c (gpg_sign): Separate signature mode from additional
flags. Check for incompatible flags. Explicitly set output to stdout if
no output file is used. Pass filename instead of fd to gpg when new flag
is set.
* src/engine-gpgsm.c (gpgsm_sign): Return error if new flag is set.
* src/engine-uiserver.c (uiserver_sign): Ditto.
* src/sign.c (sign_start): Consider new flag on check for invalid flags.
* tests/run-sign.c (show_usage): New options --detach and
--direct-file-io.
(main): Parse new options. Create a detached signature if --detach is
given. Make gpg read the input file itself if --direct-file-io is given.
core: Support direct encryption of file with gpg.
+ commit 0221d7f28a315d305409cf2dcae853c22ad94d31
* src/gpgme.h.in (GPGME_ENCRYPT_FILE): New encryption flag.
* src/engine-gpg.c (gpg_encrypt, gpg_encrypt_sign): Check for
incompatible flags. Pass filename instead of fd to gpg when new flag is
set.
* src/engine-gpgsm.c (gpgsm_encrypt): Return error if new flag is set.
* src/engine-uiserver.c (uiserver_encrypt): Ditto.
* tests/run-encrypt.c (show_usage): New option --direct-file-io.
(main): Parse new option. Make gpg read the input file itself if the
option is given.
2023-12-13 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Replace Q_FOREACH with range-for.
+ commit d5dafb2ae332fb6ad463c363e6c2c527bcf66656
* lang/qt/src/qgpgmekeyformailboxjob.cpp (do_work): Replace Q_FOREACH
with range-for.
* lang/qt/src/qgpgmekeylistjob.cpp (QGpgMEKeyListJob::resultHook):
Ditto.
* lang/qt/src/threadedjobmixin.cpp (_detail::audit_log_as_html): Ditto.
* lang/qt/tests/t-keylist.cpp (KeyListTest::testPubkeyAlgoAsString):
Ditto.
* lang/qt/tests/t-keylocate.cpp (KeyLocateTest::testDaneKeyLocate,
KeyLocateTest::testKeyLocateSingle): Ditto.
* lang/qt/src/qgpgmesignencryptjob.cpp (sign_encrypt): Replace Q_FOREACH
with range-for. Add braces around single statement blocks.
* lang/qt/src/qgpgmesignjob.cpp (sign): Ditto.
* lang/qt/src/qgpgmenewcryptoconfig.cpp
(QGpgMENewCryptoConfig::reloadConfiguration,
QGpgMENewCryptoConfig::sync,
QGpgMENewCryptoConfigComponent::setComponent,
QGpgMENewCryptoConfigEntry::urlValueList,
QGpgMENewCryptoConfigEntry::setURLValueList): Replace Q_FOREACH with
range-for. Fix indentation. Add braces around single statement blocks.
qt: Replace Q_NULLPTR with nullptr.
+ commit f7d69de030b36c1f8cb3491dc97750fb7725f258
* lang/qt/src/defaultkeygenerationjob.h, lang/qt/src/qgpgmebackend.h,
lang/qt/src/quickjob.h, lang/qt/src/threadedjobmixin.h: Replace all
occurrences of Q_NULLPTR with nullptr.
2023-11-30 Andre Heinecke <aheinecke@gnupg.org>
core: percent decode filename.
+ commit 6baccdc0c35d93253975e672bbf608750f97ab2a
* src/op-support.c (_gpgme_parse_plaintext): Decode filename
as percent string.
2023-11-28 Werner Koch <wk@gnupg.org>
Release 1.23.2.
+ commit 1a26db717575068f0ab0d00a437ae870a93e1bb8
2023-11-23 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Start dirmngr with gpgconf to avoid multiple instances.
+ commit 1bbe2d4b707843cacf020c252ce883ec45bdbc38
* lang/qt/src/qgpgmewkdlookupjob.cpp (startDirmngr): Use "gpgconf
--launch dirmngr" to start dirmngr.
2023-11-15 Ingo Klöcker <dev@ingo-kloecker.de>
qt: On Windows, use UTF-8 when logging the error text.
+ commit 618fea9e2006475bf849da1c1837e0d788f30a80
* lang/qt/src/debug.cpp (operator<<): On Windows, interpret the error
text as UTF-8 instead of local 8-bit encoding.
qt: Remove left-over partial files more persistently.
+ commit 278f92b189ece58dee2036450ac029e3599fdb1f
* lang/qt/src/Makefile.am: Add new files.
* lang/qt/src/cleaner.cpp, lang/qt/src/cleaner.h: New.
* lang/qt/src/util.cpp (PartialFileGuard::~PartialFileGuard): Call
Cleaner::removeFile instead of removeFile.
* lang/qt/src/util.cpp, lang/qt/src/util.h (removeFile): Remove.
2023-11-14 Ingo Klöcker <dev@ingo-kloecker.de>
core: Preserve more specific existing failure code.
+ commit 77e982579ccadb20ee865337ada9579ac41164e1
* src/decrypt.c (_gpgme_decrypt_status_handler): Ignore received failure
code if we already have a specific failure code.
* src/encrypt.c (_gpgme_encrypt_status_handler): Ditto.
* src/export.c (export_status_handler): Ditto.
* src/genkey.c (genkey_status_handler): Ditto.
* src/keylist.c (keylist_status_handler): Ditto.
* src/keysign.c (keysign_status_handler): Ditto.
* src/passwd.c (passwd_status_handler): Ditto.
* src/revsig.c (revsig_status_handler): Ditto.
* src/setexpire.c (setexpire_status_handler): Ditto.
* src/sign.c (_gpgme_sign_status_handler): Ditto.
* src/tofupolicy.c (tofu_policy_status_handler): Ditto.
* src/verify.c (_gpgme_verify_status_handler): Ditto.
2023-11-10 Werner Koch <wk@gnupg.org>
tests: Add option --chain to run-keylist.
+ commit 1bfd5e92d0236d1db9782904c1a2d5dc7461dae2
* tests/run-keylist.c (xstrdup): New.
(main): Add option.
2023-11-10 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Deprecate DefaultKeyGenerationJob.
+ commit 52d59d75cae5803ac49ddbee4aae9b862c73a075
* lang/qt/src/defaultkeygenerationjob.h (class DefaultKeyGenerationJob):
Deprecate.
2023-10-30 Ingo Klöcker <dev@ingo-kloecker.de>
build,qt: Build Qt with -fPIC if required or requested.
+ commit ae332749eee056f59bf902a65ffb012fcf181875
* configure.ac: Add option to enable building the Qt 6 binding with
-fPIC. Fix typo and mention default for --enable-no-direct-extern-access
option.
* m4/qt6.m4: Add -fPIC to GPGME_QT6_CFLAGS if requested or if Qt 6 was
built with reduce_relocations.
2023-10-27 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Use temporary .part file names when creating archives.
+ commit 46f5d5eeb3b1d0586106b33cecf600ab66170b45
* lang/qt/src/util.h, lang/qt/src/util.cpp (class PartialFileGuard):
New.
* lang/qt/src/util.cpp (getRandomCharacters, createPartFileName): New.
* lang/qt/src/qgpgmeencryptarchivejob.cpp (encrypt_to_filename): Use
PartialFileGuard.
* lang/qt/src/qgpgmesignarchivejob.cpp (sign_to_filename): Ditto.
* lang/qt/src/qgpgmesignencryptarchivejob.cpp
(sign_encrypt_to_filename): Ditto.
qt: Refactor removal of output file on cancel or error.
+ commit 8d8985bda1747a18b3b1378ea7c627302a61464a
* lang/qt/src/util.h, lang/qt/src/util.cpp (removeFile): New.
* lang/qt/src/qgpgmeencryptarchivejob.cpp (encrypt): Move removal of
output file from here
(encrypt_to_filename): ... to here and use new function.
* lang/qt/src/qgpgmesignarchivejob.cpp (sign): Move removal of output
file from here
(sign_to_filename): ... to here and use new function.
* lang/qt/src/qgpgmesignencryptarchivejob.cpp (sign_encrypt): Move
removal of output file from here
(sign_encrypt_to_filename): ... to here and use new function.
2023-10-25 Andre Heinecke <aheinecke@gnupg.org>
Change gpgme-w32-spawn to unicode.
+ commit a0a4cd411c6d891e9ca784fd12b76410b0bb4673
* src/Makefile.am (gpgme_w32spawn_CFLAGS): Add -municode.
* src/gpgme-w32-spawn.c (build_commandline, my_spawn)
(translate_handles): Convert to wchar_t API.
(main): Use wmain instead.
2023-10-25 Werner Koch <wk@gnupg.org>
Release 1.23.0.
+ commit aae967ec9cb365518fc8f73e6fb3ba7b55ef590d
2023-10-18 Andre Heinecke <aheinecke@gnupg.org>
qt: Handle cancel in changeexpiryjob.
+ commit ab25df8328d9248abc2816403e6051e00d5b1095
* lang/qt/src/qgpgmechangeexpiryjob.cpp (change_expiry): Return
cancel error.
2023-10-13 Marius P <nmariusp1@gmail.com>
python,examples: Add missing word "License"
+ commit 959f976dfca65b99fd1107f1fca93a5f0c4a83ad
* lang/python/examples/howto/add-userid.py,
lang/python/examples/howto/clear-sign-file.py,
lang/python/examples/howto/create-key.py,
lang/python/examples/howto/decrypt-file.py,
lang/python/examples/howto/detach-sign-file.py,
lang/python/examples/howto/encrypt-file.py,
lang/python/examples/howto/encrypt-sign-file.py,
lang/python/examples/howto/encrypt-to-group-gullible.py,
lang/python/examples/howto/encrypt-to-group-trustno1.py,
lang/python/examples/howto/encrypt-to-group.py,
lang/python/examples/howto/export-key.py,
lang/python/examples/howto/export-minimised-key.py,
lang/python/examples/howto/export-secret-key.py,
lang/python/examples/howto/export-secret-keys.py,
lang/python/examples/howto/groups.py,
lang/python/examples/howto/import-key.py,
lang/python/examples/howto/import-keybasekey.py,
lang/python/examples/howto/import-keys-hkp.py,
lang/python/examples/howto/import-keys.py,
lang/python/examples/howto/import-mailvelope-keys.py,
lang/python/examples/howto/keycount.py,
lang/python/examples/howto/local-sign-group.py,
lang/python/examples/howto/mutt-groups.py,
lang/python/examples/howto/pmkey-import-alt.py,
lang/python/examples/howto/pmkey-import-hkp-alt.py,
lang/python/examples/howto/pmkey-import-hkp.py,
lang/python/examples/howto/pmkey-import.py,
lang/python/examples/howto/revoke-userid.py,
lang/python/examples/howto/send-key-to-keyserver.py,
lang/python/examples/howto/sign-file.py,
lang/python/examples/howto/sign-key.py,
lang/python/examples/howto/symcrypt-file.py,
lang/python/examples/howto/temp-homedir-config.py,
lang/python/examples/howto/verify-signatures.py,
lang/python/examples/howto/verify-signed-file.py: Add "License" after
"Lesser General Public"
2023-10-05 Ingo Klöcker <dev@ingo-kloecker.de>
cpp: Support new key capability flags.
+ commit a9e5a25b56abb7f27812f333c287a7adae9e18e8
* lang/cpp/src/key.cpp, lang/cpp/src/key.h (class Key): New methods
hasCertify, hasSign, hasEncrypt, hasAuthenticate.
2023-10-05 Werner Koch <wk@gnupg.org>
core: Add key capability flags has_encrypt etc.
+ commit b63d203d3ba49483b079fb118a90990c452cd232
* src/gpgme.h.in (struct _gpgme_key): Add flags has_encrypt,
has_certify, has_sign, and has_authenticate.
* src/keylist.c (finish_key): Set these flags.
* tests/run-keylist.c (main): Print them.
core: Check STATUS_FAILURE in export operations.
+ commit 349a69b5ea77c334c1c59b56f283bb65dc54a590
* src/export.c (op_data_t): Add failure_code.
(export_status_handler): Set it.
(gpgme_op_export_ext, gpgme_op_export_keys): Also check the failure
code.
2023-09-29 NIIBE Yutaka <gniibe@fsij.org>
gpgme-tool: Support use of Windows HANDLE for INPUT/OUTPUT/MESSAGE.
+ commit 8ad22290df34c73881f42f02cdd28551ec265077
* src/gpgme-tool.c [HAVE_W32_SYSTEM] (server_data_obj): Implement for
Windows HANDLE.
2023-09-22 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Use UTF-8 for file names on Windows.
+ commit d43d787e9ac153f67505fee95a975b4e8f6f928e
* lang/qt/src/qgpgmedecryptverifyarchivejob.cpp
(decrypt_verify_from_file_name): On Windows, convert Unicode file name
to UTF-8.
* lang/qt/src/qgpgmeencryptarchivejob.cpp (encrypt,
encrypt_to_filename): On Windows, convert Unicode file name from/to
UTF-8.
* lang/qt/src/qgpgmesignarchivejob.cpp (sign, sign_to_filename): Ditto.
* lang/qt/src/qgpgmesignencryptarchivejob.cpp (sign_encrypt,
sign_encrypt_to_filename): Ditto.
2023-09-21 Ingo Klöcker <dev@ingo-kloecker.de>
build,qt: Autodetect whether Qt was built with -mno-direct-extern-access
+ commit 4e321a0f06ffba2437fa34ccb88527e9ea633703
* m4/qt6.m4: Check the build configuration of Qt 6 for
no_direct_extern_access.
build,qt: Optionally build Qt 6 bindings with -mno-direct-extern-access.
+ commit 927f129663b8bde1ecb4e2ac2b233a7baca8a568
* configure.ac: Check if C++ compiler supports
-mno-direct-extern-access. Add option to enable building with
-mno-direct-extern-access.
* m4/ax_check_compile_flag.m4: New.
* m4/qt6.m4: Add -mno-direct-extern-access to GPGME_QT6_CFLAGS if
supported and requested.
build,qt: Drop broken check for -fPIC.
+ commit 3e6485620816c9097f98cbe4fdb82a4683918a63
* m4/qt6.m4: Remove attempt to build a Qt program with -fPIC.
2023-09-04 Ingo Klöcker <dev@ingo-kloecker.de>
tests: Re-add --with-secret option.
+ commit 8fde9cbe22885116e4779ea70e13bd0c2273d604
* tests/run-keylist.c (main): Handle option --with-secret again.
2023-09-04 Werner Koch <wk@gnupg.org>
New mode to list a v5 fingerprint for v4 packets.
+ commit e36b2d1bce4bb6281e18f53d06d7831e6d6f5a09
* src/gpgme.h.in (GPGME_KEYLIST_MODE_WITH_V5FPR): New.
(struct _gpgme_subkey): Add field v5fpr.
* src/engine-gpg.c (gpg_keylist_build_options): Pass new option to
gpg.
* src/key.c (gpgme_key_unref): Free new field.
* src/keylist.c (op_data_t): Parse and add "fp2" line.
* tests/run-keylist.c (show_usage): Add option --v5fpr.
* src/keylist.c (op_data_t): Add field failure_code.
(keylist_status_handler): Handle special value.
(gpgme_op_keylist_end): Return an error if a FAILURE line has been
seen.
2023-09-01 NIIBE Yutaka <gniibe@fsij.org>
build: Change the default for --with-libtool-modification.
+ commit b80d52a1f74a205b6cd708ad3b5741b051bbaaff
* configure.ac (--with-libtool-modification): default=never.
2023-08-31 Werner Koch <wk@gnupg.org>
Support GPGME_ENCRYPT_ALWAYS_TRUST also for S/MIME.
+ commit d75b2a91517397261c2508dba058611f803c0733
* src/engine-gpgsm.c (gpgsm_encrypt): Send the always-trust options.
* tests/run-encrypt.c: Add option --always-trust.
2023-08-23 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Allow specifying user IDs to use when refreshing keys via WKD.
+ commit 3f297387bf401475385c458e4d1d95b3eefaf3d8
* lang/qt/src/wkdrefreshjob.h, lang/qt/src/wkdrefreshjob.cpp
(WKDRefreshJob::start): New overload.
* lang/qt/src/wkdrefreshjob_p.h (WKDRefreshJobPrivate): Add field
m_userIds.
* lang/qt/src/qgpgmewkdrefreshjob.cpp (toEmailAddresses): New.
(locate_external_keys): Change return type and arguments.
(refresh_keys): Remove.
(QGpgMEWKDRefreshJobPrivate::startIt): Get emails from keys or user IDs.
Remove duplicates. Call locate_external_keys instead of refresh_keys.
* lang/qt/tests/run-wkdrefreshjob.cpp (CommandLineOptions,
parseCommandLine): New.
(main): Support new option --all-userids.
2023-08-22 Christian Hesse <mail@eworm.de>
qt,tests: Fix build in source directory, part 2.
+ commit aee18a2ab2498bc6092bef518c532796bbe5b502
* lang/qt/tests/Makefile.am (AM_CPPFLAGS): Include Qt binding sources
before C++ binding sources and C sources.
2023-08-21 Ingo Klöcker <dev@ingo-kloecker.de>
build: Suggest out-of-source build.
+ commit 24a8c279da98fe7e586a9fc3cd91175c9e60ffef
* autogen.rc (final_info): Suggest to run configure from a build
subdirectory.
qt,tests: Fix build in source directory.
+ commit d23528cadf4284f508bc4ba05e1b5c14b46bd354
* lang/qt/tests/Makefile.am (AM_CPPFLAGS): Include Qt binding sources
before C++ binding sources and C sources.
qt: Add job for refreshing OpenPGP keys via WKD.
+ commit 2ad36f71144731f847c89b1f1e91f21c215cffa1
* lang/qt/src/wkdrefreshjob.cpp, lang/qt/src/wkdrefreshjob.h,
lang/qt/src/wkdrefreshjob_p.h, lang/qt/src/qgpgmewkdrefreshjob.cpp,
lang/qt/src/qgpgmewkdrefreshjob.h: New.
* lang/qt/src/protocol.h (class Protocol): Add pure virtual member
function wkdRefreshJob
* lang/qt/src/protocol_p.h (Protocol::wkdRefreshJob): ... and
implement it.
* lang/qt/src/Makefile.am: Update accordingly.
* lang/qt/tests/run-wkdrefreshjob.cpp: New.
* lang/qt/tests/Makefile.am: Add new test runner.
2023-08-21 Werner Koch <wk@gnupg.org>
Release 1.22.0.
+ commit 8ea7015a230eed6239298d725adf7751c5fb84ea
2023-08-17 NIIBE Yutaka <gniibe@fsij.org>
build: New configure option --with-libtool-modification.
+ commit dacbd51c3f8ae6dafe56b3d4b4d15c8d62254230
* Makefile.am (EXTRA_DIST): Add build-aux/libtool-patch.sed.
* build-aux/libtool-patch.sed: New.
* configure.ac (--with-libtool-modification): New.
* build-aux/ltmain.sh: Revert our own local modification.
2023-08-16 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Clean up after failure or cancel of sign/encrypt archive operation.
+ commit 40ca3d58963884a876c826dcf5c32673b8ddc084
* lang/qt/src/qgpgmeencryptarchivejob.cpp (encrypt): Remove output file
if operation was canceled or failed.
* lang/qt/src/qgpgmesignarchivejob.cpp (sign): Ditto.
* lang/qt/src/qgpgmesignencryptarchivejob.cpp (sign_encrypt): Ditto.
* lang/qt/tests/run-encryptarchivejob.cpp (CommandLineOptions): Add
field cancelTimeout.
(parseCommandLine): Add option --cancel-after. Parse option value.
(main): Check for invalid cancel timeout. Start timer for canceling
the job.
* lang/qt/tests/run-signarchivejob.cpp (CommandLineOptions): Add
field cancelTimeout.
(parseCommandLine): Add option --cancel-after. Parse option value.
(main): Check for invalid cancel timeout. Start timer for canceling
the job.
2023-08-15 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Make toLogString helper public.
+ commit c3171d0cf1a249618f0763fe141ab84d8a4be240
* lang/qt/src/util.h: Move toLogString ...
* lang/qt/src/debug.h: ... here.
* lang/qt/tests/run-importjob.cpp (main): Use toLogString.
2023-08-14 Ingo Klöcker <dev@ingo-kloecker.de>
tests: Support offline mode in run-import.
+ commit 150a2f9e4e5afe359fec2bbb017f6d0cfa7ca4a7
* tests/run-import.c (show_usage): New option --offline.
(main): Parse new option. Set offline mode accordingly.
core: Use offline mode for all operations of gpgsm engine.
+ commit bc98f01c8599f612dd1035b08f827b0657d94984
* src/engine-backend.h (keylist, keylist_ext): Remove engine_flags.
* src/engine-gpg.c (gpg_keylist, gpg_keylist_ext): Ditto.
* src/engine.c, src/engine.h (_gpgme_engine_op_keylist): Ditto.
(_gpgme_engine_op_keylist_ext): Ditto.
* src/engine.h (GPGME_ENGINE_FLAG_OFFLINE): Remove.
* src/engine-gpgsm.c (struct engine_gpgsm): New field flags with offline
flag.
(have_gpgsm_version): New.
(gpg_set_engine_flags): Set the offline flag.
(start): Send OPTION "offline".
(gpgsm_keylist, gpgsm_keylist_ext): Remove engine_flags. Remove
sending of OPTION "offline".
* src/keylist.c (gpgme_op_keylist_start, gpgme_op_keylist_ext_start):
Remove setting of offline flag.
core: Store engine's version string in gpgsm engine.
+ commit d72811a2c09411f8fdc821eb78d16ce8fbd5a184
* src/engine-gpgsm.c (struct engine_gpgsm): Add field 'version'.
(gpgsm_new): Copy version string.
(gpgsm_release): Free VERSION.
2023-08-04 Carl Schwan <carl.schwan@gnupg.com>
cpp: Expose gpgme_decrypt_result_t.is_mime through cpp API.
+ commit 8701e989376dfa772f299fe41bf4a60a98f8564e
* lang/cpp/src/descriptionresult.cpp (DescriptionResult::isMime): New.
* lang/cpp/src/descriptionresult.h: Update accordingly.
2023-08-03 Carl Schwan <carl.schwan@gnupg.com>
qt: Add setInputEncoding to QGpgMe::EncryptJob.
+ commit d91d037fc19f0bbec44210099dc0d0e358d3fd4a
* lang/qt/src/encryptjob.cpp, lang/qt/src/encryptjob.h,
lang/qt/src/encryptjob_p.h: Add inputEncoding/setInputEncoding
to EncryptJob
* lang/qt/src/qgpgmeencryptjob.cpp: Use newly added inputEncoding
to set encoding hint of the encrypted content
2023-07-28 Ingo Klöcker <dev@ingo-kloecker.de>
core: Prevent wrong plaintext when verifying clearsigned signature.
+ commit a9b28c79e92f6194ea52c7d33213f2a0dc9bd013
* src/engine-gpg.c (gpg_verify): Use a separate pipe instead of stdout
for reading the plaintext.
* tests/gpg/t-support.h (PGM): Define if undefined.
(print_data): Undefine BUF_SIZE.
(check_data): New.
* tests/gpg/t-verify.c (clearsigned_plus_key_block): New.
(main): Add test.
core: Return bad data error instead of general error on unexpected data.
+ commit 777cf7f2d17331cfe127129c750121970fcad58f
* src/verify.c (_gpgme_verify_status_handler): Return GPG_ERR_BAD_DATA
instead of GPG_ERR_GENERAL.
2023-07-28 NIIBE Yutaka <gniibe@fsij.org>
build: Update libassuan.m4 for libassuan version 3 in future.
+ commit 0518ed32e254faaa1f5ae61593ab17e8485388a6
* m4/libassuan.m4: Update from libassuan master.
2023-07-08 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Ensure that we check the correct paths.
+ commit e3defc0adf68de74a735abae334739771838f191
* lang/qt/src/QGpgmeConfig-w32.cmake.in.in,
lang/qt/src/QGpgmeQt6Config-w32.cmake.in.in: Get paths to check from
the target properties.
2023-07-08 Ingo Klöcker <dev@ingo-kloecker.de>
Biswapriyo Nath <nathbappai@gmail.com>
qt: Fix DLL version in cmake config files.
+ commit be0e653ce3039b1a81d23bed9dc99c0e60a7995a
* lang/qt/src/QGpgmeConfig-w32.cmake.in.in,
lang/qt/src/QGpgmeQt6Config-w32.cmake.in.in: Fix name and path of DLL.
2023-07-08 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Fix check for required files.
+ commit ad34fcbbec3fc3a1a7d1232afd2e4f55119e2cb6
* lang/qt/src/QGpgmeConfig-w32.cmake.in.in: Fix typos in variable names.
2023-07-07 Werner Koch <wk@gnupg.org>
Release 1.21.0.
+ commit 5bf3e6d0754a179b316f90a885371af99bc03ea1
2023-06-23 NIIBE Yutaka <gniibe@fsij.org>
build: Add BUILT_SOURCE for better dependency.
+ commit 05ac1ce09ff199c715805cf601ea6d65e26c1fff
* Makefile.am (BUILT_SOURCE): Add conf/config.h.
2023-06-21 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Support reading signed/encrypted archives directly from a file.
+ commit 1c2459a5927866931808141ac6c4157cd5e3a157
* lang/qt/src/decryptverifyarchivejob.cpp,
lang/qt/src/decryptverifyarchivejob.h (DecryptVerifyArchiveJob): Add
member functions setInputFile, inputFile.
* lang/qt/src/decryptverifyarchivejob_p.h
(DecryptVerifyArchiveJobPrivate): Add member m_inputFilePath.
* lang/qt/src/qgpgmedecryptverifyarchivejob.cpp (decrypt_verify): Move
creation of indata to decrypt_verify_from_io_device.
(decrypt_verify_from_io_device, decrypt_verify_from_file_name): New.
(QGpgMEDecryptVerifyArchiveJob::start): Use
decrypt_verify_from_io_device instead of decrypt_verify.
(QGpgMEDecryptVerifyArchiveJobPrivate::startIt): Start the job with the
values from member variables.
* lang/qt/tests/run-decryptverifyarchivejob.cpp (createInput): Remove.
(main): Remove creation of input. Make the job read the archive directly
from the given archive name.
core: Support reading the archive to decrypt/verify directly from a file
+ commit 1a9f192ab450288aea7a889527e78afd2c067b59
* src/engine-gpg.c (add_file_name_arg_or_data): New.
(gpg_decrypt): Use add_file_name_arg_or_data instead of add_data for the
ciphertext.
(gpg_verify): Use add_file_name_arg_or_data instead of add_data for the
signature and the signed text.
* tests/run-decrypt.c (show_usage): New option --direct-file-io.
(main): Parse new option. If option is given, then don't open input
file, create simple data object instead of data object from stream and
set input file name on input data.
* tests/run-verify.c (show_usage): New option --direct-file-io.
(main): Parse new option. If option is given, then don't open input
files, create simple data objects instead of data objects from stream
and set input file names on input data objects.
2023-06-19 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Support writing signed/encrypted archives directly to a file.
+ commit e608315392cc5b7ddf51e16dce5fe7e99b83f011
* lang/qt/src/encryptarchivejob.cpp, lang/qt/src/encryptarchivejob.h
(EncryptArchiveJob): Add member functions setRecipients, recipients,
setInputPaths, inputPaths, setOutputFile, outputFile,
setEncryptionFlags, encryptionFlags.
* lang/qt/src/encryptarchivejob_p.h (EncryptArchiveJobPrivate): Add
members m_recipients, m_inputPaths, m_outputFilePath, m_encryptionFlags.
* lang/qt/src/qgpgmeencryptarchivejob.cpp (encrypt): Move creation of
outdata to encrypt_to_io_device.
(encrypt_to_io_device, encrypt_to_filename): New.
(QGpgMEEncryptArchiveJob::start): Use encrypt_to_io_device instead of
encrypt.
(QGpgMEEncryptArchiveJobPrivate::startIt): Start the job with the
values from member variables.
* lang/qt/src/qgpgmesignarchivejob.cpp (sign): Move creation of
outdata to sign_to_io_device.
(sign_to_io_device, sign_to_filename): New.
(QGpgMESignArchiveJob::start): Use sign_to_io_device instead of sign.
(QGpgMESignArchiveJobPrivate::startIt): Start the job with the
values from member variables.
* lang/qt/src/qgpgmesignencryptarchivejob.cpp (sign_encrypt): Move
creation of outdata to sign_encrypt_to_io_device.
(sign_encrypt_to_io_device, sign_encrypt_to_filename): New.
(QGpgMESignEncryptArchiveJob::start): Use sign_encrypt_to_io_device
instead of sign_encrypt.
(QGpgMESignEncryptArchiveJobPrivate::startIt): Start the job with the
values from member variables.
* lang/qt/src/signarchivejob.cpp, lang/qt/src/signarchivejob.h
(SignArchiveJob): Add member functions setSigner, signers,
setInputPaths, inputPaths, setOutputFile, outputFile.
* lang/qt/src/signarchivejob_p.h (SignArchiveJobPrivate): Add
members m_signers, m_inputPaths, m_outputFilePath.
* lang/qt/src/signencryptarchivejob.cpp,
lang/qt/src/signencryptarchivejob.h (SignEncryptArchiveJob): Add
member functions setSigner, signers, setRecipients, recipients,
setInputPaths, inputPaths, setOutputFile, outputFile,
setEncryptionFlags, encryptionFlags.
* lang/qt/src/signencryptarchivejob_p.h (SignEncryptArchiveJobPrivate):
Add members m_signers, m_recipients, m_inputPaths, m_outputFilePath,
m_encryptionFlags.
* lang/qt/tests/run-encryptarchivejob.cpp (createOutput): Remove.
(checkOutputFilePath): New.
(main): Create file output writing to stdout if no archive name (or "-")
is given. Exit if file with given archive name already exists. Make
the jobs write the created archive directly to the given archive name.
* lang/qt/tests/run-signarchivejob.cpp (createOutput): Remove.
(checkOutputFilePath): New.
(main): Create file output writing to stdout if no archive name (or "-")
is given. Exit if file with given archive name already exists. Make
the jobs write the created archive directly to the given archive name.
core: Support writing the sign/encrypt output directly to a file.
+ commit c38b6200396f703917e4c66aca068f90cfbad325
* src/engine-gpg.c (gpg_encrypt): Pass output file name to gpg if output
has file name set.
(gpg_encrypt_sign): Ditto.
(gpg_sign): Ditto.
* tests/run-encrypt.c (show_usage): New option --output.
(main): Parse new option. Set file name on output if --output is given.
Do not print output if --output is given.
* tests/run-sign.c (show_usage): New option --output.
(main): Parse new option. Set file name on output if --output is given.
Do not print output if --output is given.
qt: Add a generic hook to start a job.
+ commit 8b9fabf5d55419a68c2b0fc7fd1a90517c881d78
* lang/qt/src/job.cpp, lang/qt/src/job.h (Job::startIt): New method.
* lang/qt/src/job_p.h (JobPrivate::startIt): New pure virtual method.
* lang/qt/src/qgpgmechangeexpiryjob.cpp
(QGpgMEChangeExpiryJobPrivate::startIt): New.
* lang/qt/src/qgpgmedecryptverifyarchivejob.cpp
(QGpgMEDecryptVerifyArchiveJobPrivate::startIt): New.
* lang/qt/src/qgpgmeencryptarchivejob.cpp
(QGpgMEEncryptArchiveJobPrivate::startIt): New.
* lang/qt/src/qgpgmeencryptjob.cpp (QGpgMEEncryptJobPrivate::startIt):
New.
* lang/qt/src/qgpgmeimportjob.cpp (QGpgMEImportJobPrivate::startIt):
New.
* lang/qt/src/qgpgmelistallkeysjob.cpp
(QGpgMEListAllKeysJobPrivate::startIt): New.
* lang/qt/src/qgpgmesignarchivejob.cpp
(QGpgMESignArchiveJobPrivate::startIt): New.
* lang/qt/src/qgpgmesignencryptarchivejob.cpp
(QGpgMESignEncryptArchiveJobPrivate::startIt): New.
* lang/qt/src/qgpgmesignencryptjob.cpp
(QGpgMESignEncryptJobPrivate::startIt): New.
qt: Make the run methods of ThreadedJobMixin public.
+ commit 23526c3ff26be11e4ebb1294b6f60202881a066c
* lang/qt/src/threadedjobmixin.h (ThreadedJobMixin::run): Make all
overloads public.
qt: Rename JobPrivate::start to JobPrivate::startNow.
+ commit 4655b2dc6b33aca3bd6737eadadfb8afcf8694bd
* lang/qt/src/job_p.h (JobPrivate::start): Rename to startNow.
* lang/qt/src/job.cpp (Job::startNow): Adapt function call.
* lang/qt/src/qgpgmechangeexpiryjob.cpp
(QGpgMEChangeExpiryJobPrivate::start): Rename to startNow.
* lang/qt/src/qgpgmedecryptverifyarchivejob.cpp
(QGpgMEDecryptVerifyArchiveJobPrivate::start): Rename to startNow.
* lang/qt/src/qgpgmeencryptarchivejob.cpp
(QGpgMEEncryptArchiveJobPrivate::start): Rename to startNow.
* lang/qt/src/qgpgmeencryptjob.cpp (QGpgMEEncryptJobPrivate::start):
Rename to startNow.
* lang/qt/src/qgpgmeimportjob.cpp (QGpgMEImportJobPrivate::start):
Rename to startNow.
* lang/qt/src/qgpgmelistallkeysjob.cpp
(QGpgMEListAllKeysJobPrivate::start): Rename to startNow.
* lang/qt/src/qgpgmesignarchivejob.cpp
(QGpgMESignArchiveJobPrivate::start): Rename to startNow.
* lang/qt/src/qgpgmesignencryptarchivejob.cpp
(QGpgMESignEncryptArchiveJobPrivate::start): Rename to startNow.
* lang/qt/src/qgpgmesignencryptjob.cpp
(QGpgMESignEncryptJobPrivate::start): Rename to startNow.
qt: Return const pointer to JobPrivate class for const pointer to Job.
+ commit 6f6b35df505af108669bd6ff8c351c970130eb45
* lang/qt/src/job.cpp, lang/qt/src/job_p.h (getJobPrivate): Replace with
two overloads for non-const pointer and const pointer to Job.
* lang/qt/src/job_p.h (jobPrivate): Replace with two template functions
for non-const pointer and const pointer to Job.
2023-06-16 Andre Heinecke <aheinecke@gnupg.org>
qt, cpp: Support larger size-hint on 32 bit builds.
+ commit 5811d069d3b391e9fd77c1062a2d96be41645422
* NEWS: Mention this.
* lang/cpp/src/data.h, lang/cpp/src/data.cpp (Data::setSizeHint): New.
* lang/qt/src/qgpgmedecryptjob.cpp,
lang/qt/src/qgpgmedecryptverifyarchivejob.cpp,
lang/qt/src/qgpgmedecryptverifyjob.cpp,
lang/qt/src/qgpgmeencryptjob.cpp,
lang/qt/src/qgpgmesignencryptjob.cpp,
lang/qt/src/qgpgmesignjob.cpp,
lang/qt/src/qgpgmeverifydetachedjob.cpp,
lang/qt/src/qgpgmeverifyopaquejob.cpp: Set size for input IODevice.
cpp: Expose gpgme_data_set_flag through cpp API.
+ commit cbcea4a09b1309a4bd822247a8dfcdcb73041f9c
* lang/cpp/src/data.cpp (Data::setFlag): New.
* lang/cpp/src/data.h: Update accordingly.
* NEWS: Mention this.
2023-06-15 Werner Koch <wk@gnupg.org>
core: Send a input-size-hint for gpgsm.
+ commit 91bbb1e482da783b4d1b9d5f663a1a0af77fc0a4
* src/engine-gpgsm.c (send_input_size_hint): New.
(gpgsm_decrypt): Send hint.
(gpgsm_encrypt): Send hint.
(gpgsm_sign): Send hint.
(gpgsm_verify): Send hint.
tests: Add option --cancel to run-encrypt.
+ commit 8796456d235d2d7a8a1ce7337abc1d4d149bcf9a
* tests/run-encrypt.c (cancel_after_progress): New.
(progress_cb): Take care of it.
(main): Add option --cancel.
core: Use 64 bit instead of gpgme_off_t for some internal functions.
+ commit eb68948c438814b99b81adf44b674738d0b1be34
* src/conversion.c (_gpgme_string_to_off): Return an u64 value.
* src/data.c (_gpgme_data_get_size_hint): Ditto.
(gpgme_data_set_flag): Use u64 for io-buffer-size due to string_to_off
change.
* src/data.h (struct gpgme_data): Change size_hint to u64.
* src/engine-gpg.c (add_input_size_hint): Replace gpgme_off_t by u64.
2023-06-13 Andre Heinecke <aheinecke@gnupg.org>
Fix definition of GPG_ERR_ENABLE_GETTEXT_MACROS.
+ commit 7e6d51aa6fc97bed12486540167e9b710c9a3378
* configure.ac: Add missing value.
2023-06-01 Ingo Klöcker <dev@ingo-kloecker.de>
doc,cpp: Treat GPG_ERR_FULLY_CANCELED as canceled.
+ commit 7990f70107bc8487f954c6885436a7661e162929
* doc/gpgme.texi (GPG_ERR_FULLY_CANCELED): New.
* lang/cpp/src/context.cpp (Error::isCanceled): Also return true for
GPG_ERR_FULLY_CANCELED.
2023-05-30 Biswapriyo Nath <nathbappai@gmail.com>
cpp,python: Respect --disable-gpg-test for tests.
+ commit e2103be390764f62b21a4e5d4fa90a7b78326787
lang/cpp/Makefile.am (SUBDIRS): Depend tests in RUN_GPG_TESTS.
lang/python/Makefile.am (SUBDIRS): Ditto.
2023-05-30 Werner Koch <wk@gnupg.org>
core: For key signing and uid revoking allow an empty user id.
+ commit fbc3963d6229853fe9fb1fd599ef39ed0fe2eae6
* src/engine-gpg.c (gpg_keysign): Required USERID to be non-empty.
2023-05-23 Werner Koch <wk@gnupg.org>
python: Fix wrong use of write.
+ commit 36a68bc5308c0b4a541ca6adea5d3635217e8af2
* lang/python/helpers.c (pyPassphraseCb): Use gpgme_io_writen.
(_gpg_interact_cb): Ditto.
* lang/python/helpers.h (write) [W32]: Remove bad write macro.
2023-05-16 NIIBE Yutaka <gniibe@fsij.org>
build: Sync to libtool from libgpg-error for 64-bit Windows.
+ commit e622e36f1f32641c66b28a0de95c75ae35f6ca05
* build-aux/ltmain.hs: Update from libgpg-error.
2023-04-26 NIIBE Yutaka <gniibe@fsij.org>
Ingo Klöcker
doc: Fix Python example code.
+ commit d44a473e27160a35268789e14dccd0ad55af0690
* lang/python/doc/src/gpgme-python-howto.org: Fix chmod race.
* lang/python/examples/howto/export-secret-key.py: Likewise.
* lang/python/examples/howto/export-secret-keys.py: Likewise.
* lang/python/examples/howto/temp-homedir-config.py: Likewise.
2023-04-20 Werner Koch <wk@gnupg.org>
Release 1.20.0.
+ commit 451ed47434c5ffd2916adae25e5a128606b5ef98
core: Support the new macOS Homebrew location.
+ commit 7351ef32ce7c04d20ee32fc9b645a1931b3b0aba
* src/posix-util.c (find_executable): Extend the path.
2023-04-19 Ingo Klöcker <dev@ingo-kloecker.de>
build,qt: Simplify check for moc.
+ commit a14155d2c1b2ddc167dbf278faf1d6b469575492
m4/qt6.m4: Remove alternative checks for moc that were taken over from
Qt 5 and that are obsolete for Qt 6.
Update NEWS.
+ commit e80bf34bf86f6f183145c31d598dda41c0496a4d
* NEWS: Add news for recent changes
2023-04-18 Ingo Klöcker <dev@ingo-kloecker.de>
cpp: Fix Key::canSign()
+ commit 5bd84cfd3f092703bb4b9b993be7d89ca13b36b0
* lang/cpp/src/key.h (canReallySign): Deprecate.
* lang/cpp/src/key.cpp (canSign): Remove workaround. Use implementation
of canReallySign.
(canReallySign): Use canSign().
(operator<<): Use canSign().
2023-04-17 Werner Koch <wk@gnupg.org>
core: Avoid printf format warnings due to gpgme_ssize_t.
+ commit 7d1159c1e99bb1bae0ab698c85105dcdcb95b7ea
* src/debug.h (_trace_sysres_ssize_t): Cast arg.
core,w32: Fix invocation of gpgtar.
+ commit 0c29119e061cbdcb7342380938a25af91290f1a0
* src/dirinfo.c (EXEEXT_S): New.
(get_gpgconf_item): Append ".exe" to gpg-wks-client and gpgtar.
* src/gpgme-w32spawn.c (mystderr): Add code to ease debugging.
2023-04-06 NIIBE Yutaka <gniibe@fsij.org>
build: Update gpg-error.m4.
+ commit 806a5d18b988449fbaa3c2e6380acf3ae4580f4a
* m4/gpg-error.m4: Update from libgpg-error master.
2023-04-04 Ingo Klöcker <dev@ingo-kloecker.de>
w32: Always use UTF-8 for localized texts.
+ commit d256ba7cc57d9bfcfa05fb05cf66dc992efbb695
* configure.ac: Define GPG_ERR_ENABLE_GETTEXT_MACROS.
* src/version.c (do_subsystem_inits) [W32]: Switch gettext to UTF-8.
2023-03-27 Werner Koch <wk@gnupg.org>
core: Minor code cleanup.
+ commit 34cc7daba12a2a6baa3cfa337762656c210686fa
* src/engine-gpg.c (build_argv): Remove superfluous tes.
2023-03-27 Ingo Klöcker <dev@ingo-kloecker.de>
core: Initialize error variable.
+ commit b608c084b9220d8ed288eb916e88a236abac0707
* src/engine-gpg.c (build_argv): Initialize err.
2023-03-21 Werner Koch <wk@gnupg.org>
core,cpp: Add new key flags to gpgme_subkey_t.
+ commit 6d21256c9220df05bf92a695a787dde13fe44ca7
* src/gpgme.h.in (struct _gpgme_subkey): Add bit flags can_renc,
can_timestamp, adn is_group_owned. Reduce size of _unused.
* src/keylist.c (set_subkey_capability): Set them.
* tests/run-keylist.c (main): Print them.
* lang/cpp/src/key.h (Subkey::canRenc): New.
(Subkey::canTimestamp): New.
(Subkey::isGroupOwned): New.
* lang/cpp/src/key.cpp: Implement new methods.
(Subkey::isQualified): Print them.
(std::ostream &operator<<): Print them.
2023-03-17 Werner Koch <wk@gnupg.org>
Release 1.19.0.
+ commit 96a30fdf30626a7cefd9c9e620a60817ef44fde2
2023-03-17 Ben Greiner (bnavigator) <unknown@dev.gnupg.org>
python: Update python.m4 configure script.
+ commit d086653cc346d5634bc742d5586e927fc9ee57cf
* configure.ac: Unset PYTHON_LIBS. Support python 3.10.
* m4/python.m4: Find correct version string for python >= 3.10.
2023-03-17 Ingo Klöcker <dev@ingo-kloecker.de>
tests: Package the ownertrust file.
+ commit e50724e1bbe55678dfcd2a1ea75157f6514fc58a
tests/gpg/Makefile.am (EXTRA_DIST): Add ownertrust.txt.
2023-03-08 Werner Koch <wk@gnupg.org>
core: Also detect legacy X.509 v0 certificates.
+ commit c1f6535f144dedfbf5507f850d4da5b61fd5ec74
* src/data-identify.c (basic_detection): Loose the detection of X.509
certs.
tests: Add option --binary to run-verify.
+ commit 76351c4877d60799a35afccd87037d5dd0871262
* tests/run-verify.c (main): Set encoding.
2023-02-14 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Add signals for file-based and data-based progress.
+ commit 73e46b34658c0130de5ab9e3f4ce1ac4ee35c5e2
* lang/qt/src/decryptverifyarchivejob.h (DecryptVerifyArchiveJob): Add
signals fileProgress and dataProgress.
* lang/qt/src/encryptarchivejob.h (EncryptArchiveJob): Ditto.
* lang/qt/src/signarchivejob.h (SignArchiveJob): Ditto.
* lang/qt/src/signencryptarchivejob.h (SignEncryptArchiveJob): Ditto.
* lang/qt/src/job_p.h (emitArchiveProgressSignals): New.
* lang/qt/src/qgpgmedecryptverifyarchivejob.cpp
(QGpgMEDecryptVerifyArchiveJob::QGpgMEDecryptVerifyArchiveJob): Emit
appropriate signal when receiving Job::rawProgress signal.
* lang/qt/src/qgpgmeencryptarchivejob.cpp
(QGpgMEEncryptArchiveJob::QGpgMEEncryptArchiveJob): Ditto.
* lang/qt/src/qgpgmesignarchivejob.cpp
(QGpgMESignArchiveJob::QGpgMESignArchiveJob): Ditto.
* lang/qt/src/qgpgmesignencryptarchivejob.cpp
(QGpgMESignEncryptArchiveJob::QGpgMESignEncryptArchiveJob): Ditto.
qt: Add simple and extended progress signals replacing old signal.
+ commit ea6f15ed602eeb9fa87766ba88acc78361a14b38
* lang/qt/src/job.h (Job): Add signals jobProgress and rawProgress.
Deprecate signal progress.
* lang/qt/src/multideletejob.cpp (MultiDeleteJob::slotResult): Emit
new progress signals.
* lang/qt/src/qgpgmerefreshsmimekeysjob.cpp
(QGpgMERefreshSMIMEKeysJob::slotStatus): Ditto.
* lang/qt/src/threadedjobmixin.h (ThreadedJobMixin::showProgress): Use
modern overload of QMetaObject::invokeMethod to forward the progress
signal and add the value of what. Add forwarding of progress to the new
signals.
* lang/qt/tests/t-encrypt.cpp (EncryptionTest::testProgress): Test
the new signals instead of the deprecated one.
2023-02-10 Werner Koch <wk@gnupg.org>
core: Switch to logging via gpgrt.
+ commit 9c5506fde701f637381614dcfe22e3f9dc82955d
* src/debug.c (errfp): Remove.
(debug_init): Factor some code out to ...
(safe_to_use_debug_file): new.
(tid_log_callback): New.
(debug_init): Rewrite to make use of gpgrt logging.
(_gpgme_debug): Ditto.
(_gpgme_debug_end): Remove extra LF testing code.
* src/dirinfo.c (get_gpgconf_item): Remove now unneeded LFs. Realign
output.
2023-02-10 Ingo Klöcker <dev@ingo-kloecker.de>
tests: Fix cleaning up at the end of the test.
+ commit 21283dfd1be1e56bc174cf5f12461888af7ab8b5
* tests/gpg/t-import.c (main): Unref key and release context.
core: Allow finalization of signature verification of unencrypted data.
+ commit 41dc3bd22a3e0001abec8f2bea79b40ee5ad00be
* src/decrypt-verify.c (decrypt_verify_status_handler): Call
_gpgme_verify_status_handler on EOF even if
_gpgme_decrypt_status_handler returned NO DATA error.
* tests/gpg/t-decrypt-verify.c (normal_signed_message): New.
(main): Add test with signed, but not encrypted data.
2023-02-09 Ingo Klöcker <dev@ingo-kloecker.de>
cpp: Improve debug output of some enums.
+ commit 3aaed9cfbfd6821b2e812fbdd24448953d6ca279
* lang/cpp/src/verificationresult.cpp (operator<<): Fix output of
Signature::PKAStatus which doesn't represent flags. Print corresponding
name of enum value if Signature::Summary or Notation::Flags are 0.
tests: Stop daemons after setting up test environment.
+ commit 7098c14b231113055535abb14b4cde0c845f8728
* lang/python/tests/Makefile.am, lang/qt/tests/Makefile.am,
tests/gpg/Makefile.am, tests/json/Makefile.am (pubring-stamp): Call
`gpgconf --kill all` after importing test keys.
2023-02-08 Ingo Klöcker <dev@ingo-kloecker.de>
tests: Extend tests with an ultimately trusted key.
+ commit fcefc78f749a8f39cc587636647b24f8fa48efad
* tests/gpg/Makefile.am (gpg-sample.stamp, pubring-stamp): Unify usage
of tabs.
(pubring-stamp): Import owner trust values.
* tests/gpg/ownertrust.txt: New.
* tests/gpg/t-decrypt-verify.c, tests/gpg/t-verify.c: Update expected
values for signature summary and validity.
* tests/gpg/t-keylist-secret-sig.c, tests/gpg/t-keylist-sig.c,
tests/gpg/t-keylist.c: Update expected values of owner trust and uid
validity.
tests: Make t-edit-sign idempotent.
+ commit 844e6cd3b923834727f042b92d6a9a2db86b3fed
* tests/gpg/t-edit-sign.c (test_key, test_key_fpr, import_key,
delete_key): New.
(main): Remove key_fpr. Import test key to sign. Delete test key after
test.
2023-02-02 Ingo Klöcker <dev@ingo-kloecker.de>
qt,tests: Add test for the previous commit.
+ commit 52fd0bcde47a676ee1021c870b50e2add78d6973
* lang/qt/tests/t-decryptverify.cpp: New.
* lang/qt/tests/Makefile.am: Add new test.
cpp: Return successful verification for signed but not encrypted data.
+ commit 1698eec2ae3ec1a97c739e892d9cf288c0ec4ccd
* lang/cpp/src/context.cpp (Context::decrypt): Use decryptionResult().
(Context::verifyDetachedSignature, Context::verifyOpaqueSignature):
Use verificationResult().
(Context::verificationResult): Ignore "no data" error for signed but
not encrypted data.
(Context::decryptAndVerify): Use decryptionResult() and
verificationResult().
qt: Add job for extracting encrypted and signed archives.
+ commit c407728064ca0c9b2f365437c6a7f2acc40e6d84
* lang/qt/src/decryptverifyarchivejob.cpp,
lang/qt/src/decryptverifyarchivejob.h,
lang/qt/src/decryptverifyarchivejob_p.h,
lang/qt/src/qgpgmedecryptverifyarchivejob.cpp,
lang/qt/src/qgpgmedecryptverifyarchivejob.h: New.
* lang/qt/src/protocol.h (class Protocol): Add pure virtual member
function decryptVerifyArchiveJob
* lang/qt/src/protocol_p.h (Protocol::decryptVerifyArchiveJob): ... and
implement it.
* lang/qt/src/Makefile.am: Update accordingly.
* lang/qt/tests/run-decryptverifyarchivejob.cpp: New.
* lang/qt/tests/Makefile.am: Add new test runner.
core: Make usage of input size hint compatible with gpgtar.
+ commit 7ad717f6ba00046a26a99d015d701a178ca30630
* src/engine-gpg.c (add_input_size_hint): Use add_gpg_arg_with_value
to add the --input-size-hint option.
cpp: Update decryption flags.
+ commit b3bdf14b37a313c21de61168e5e7545ab08fea13
* lang/cpp/src/context.h (DecryptArchive): New flag.
qt: Allow checking if the sign/encrypt archive jobs are supported.
+ commit 55c948866fb8bf4adbf0c8f53edf51a4075b753e
* lang/qt/src/encryptarchivejob.cpp, lang/qt/src/encryptarchivejob.h
(isSupported): New.
* lang/qt/src/signarchivejob.cpp, lang/qt/src/signarchivejob.h
(isSupported): New.
* lang/qt/src/signencryptarchivejob.cpp,
lang/qt/src/signencryptarchivejob.h (isSupported): New.
* lang/qt/tests/run-encryptarchivejob.cpp (main),
lang/qt/tests/run-signarchivejob.cpp (main): Check if jobs are
supported.
cpp: Add const-overloads of version comparison operators.
+ commit 84780646910cdd91555a368650e3d92cf52b86bd
* lang/cpp/src/engineinfo.h (EngineInfo::Version): Add const-overloads
of all comparison operators.
core: Allow usage of gpgtar also for new enough gpg 2.2.
+ commit 7f541547fc1783bb9ea119695fb76e2000bdfcf8
* src/engine-gpg.c (have_usable_gpgtar): New.
(start): Always pass --status-fd to the called process.
(gpg_decrypt, gpg_encrypt, gpg_encrypt_sign, gpg_sign, gpg_verify):
Use have_usable_gpgtar() to check for suitable gpg.
2023-02-01 Werner Koch <wk@gnupg.org>
core,w32: More robust detection of GnuPG Desktop dir layout.
+ commit 5ab9c234d6b507f568fe1d2a2cbc82250a7828ee
* src/w32-util.c (INST_TYPE_GPG4WIN, INST_TYPE_GPGDESK): New to
replace the numeric constants.
(find_version_file): New.
(_gpgme_get_gpgconf_path): Guess a default for inst_type.
2023-01-31 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Fix build without installed gpgme++ headers.
+ commit 343fb33bf02bea74caf4e615483f1a00dc06f7b8
* lang/qt/src/filelistdataprovider.cpp: Include error.h without
folder prefix.
qt: Remove unused and commented-out code.
+ commit d3a8c2c8b68b290a642c83c53a5989ee7fdc6331
* lang/qt/src/qgpgmeencryptarchivejob.cpp,
lang/qt/src/qgpgmeencryptarchivejob.h (QGpgMEEncryptArchiveJob):
Remove member function resultHook and member mResult.
* lang/qt/src/qgpgmesignarchivejob.cpp,
lang/qt/src/qgpgmesignarchivejob.h (QGpgMESignArchiveJob):
Remove member function resultHook and member mResult.
cpp: Fix debug output of SignatureMode.
+ commit 41a30f6d9f59b08213ab2c307036be9bc9b6f876
* lang/cpp/src/context.cpp (operator<<): Treat signature mode as
combination of a 2-bit flag and a 1-bit flag.
qt: Add job for creating encrypted signed archives.
+ commit 8c4436e73af369f79f125f56d020d01b184cafc6
* lang/qt/src/signencryptarchivejob.cpp,
lang/qt/src/signencryptarchivejob.h,
lang/qt/src/signencryptarchivejob_p.h,
lang/qt/src/qgpgmesignencryptarchivejob.cpp,
lang/qt/src/qgpgmesignencryptarchivejob.h: New.
* lang/qt/src/protocol.h (class Protocol): Add pure virtual member
function signEncryptArchiveJob
* lang/qt/src/protocol_p.h (Protocol::signEncryptArchiveJob): ... and
implement it.
* lang/qt/src/Makefile.am: Update accordingly.
* lang/qt/tests/run-encryptarchivejob.cpp (displayName): Remove.
(CommandLineOptions): Initialize member armor. Add member sign.
(parseCommandLine): Update application description. Add and parse option
-s/--sign.
(main): Use SignEncryptArchiveJob if sign option is set.
qt,tests: Avoid leaking Context.
+ commit 2b98585c89c1654aa736777eeb92ff79d5fdd72b
* lang/qt/tests/t-import.cpp: Wrap Context*s in unique_ptr.
2023-01-31 Werner Koch <wk@gnupg.org>
json: New operation "identify" and convenience option --identify.
+ commit 359378c5b3f3aaf274dfc33861978c3cf6ec60ca
* src/gpgme-json.c (data_type_to_string): New.
(op_identify): New.
(process_request): Add to command list.
(cmd_identify): New.
(main): Add option --identify.
2023-01-30 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Add job for creating signed archives.
+ commit 8d672b3b7e5c5d487f20fb742a29fbee21236885
* lang/qt/src/signarchivejob.cpp, lang/qt/src/signarchivejob.h,
lang/qt/src/signarchivejob_p.h,
lang/qt/src/qgpgmesignarchivejob.cpp,
lang/qt/src/qgpgmesignarchivejob.h: New.
* lang/qt/src/protocol.h (class Protocol): Add pure virtual member
function signArchiveJob
* lang/qt/src/protocol_p.h (Protocol::signArchiveJob): ... and
implement it.
* lang/qt/src/Makefile.am: Update accordingly.
* lang/qt/tests/run-signarchivejob.cpp: New.
* lang/qt/tests/Makefile.am: Add new test runner.
cpp: Support new archive signing flag.
+ commit 2faa031af24959d5093da430d5f10fe30d77a75d
* lang/cpp/src/global.h (enum SignatureMode): Add constant SignArchive.
* lang/cpp/src/context.cpp (sigmode2sigmode): Rename to
sigflags2sigflags
(sigflags2sigflags): ... and rename argument mode to flags and treat
it as flags. Adjust the callers.
(operator<<): Change local CHECK macro to handle flags. Add new flag
to debug stream.
* lang/cpp/src/signingresult.cpp (CreatedSignature::mode): Handle
new flags (even if it cannot occur currently).
core: Use signature modes as flags.
+ commit 48b11f576260286bddef3833e25d0059638fe0bb
* src/engine-backend.h (engine_ops.sign): Rename argument mode to
flags.
* src/engine-gpg.c (gpg_sign): Rename argument mode to flags. Check
for invalid combination of flags.
* src/engine-gpgsm.c (gpgsm_sign): Rename argument mode to flags.
Check for unsupported flags.
* src/engine-uiserver.c (gpgsm_sign): Rename argument mode to flags.
Check for unsupported flags.
* src/engine.c, src/engine.h (_gpgme_engine_op_sign): Rename argument
mode to flags.
* src/gpgme.h.in (GPGME_SIG_MODE_ARCHIVE): Change value to 4.
(gpgme_op_sign_start, gpgme_op_sign): Rename argument mode to flags.
* src/sign.c (sign_start): Rename argument mode to flags. Adjust
check for invalid flags.
(gpgme_op_sign_start, gpgme_op_sign): Rename argument mode to flags.
2023-01-27 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Add job for creating encrypted archives.
+ commit 7afd135ccec73585e06272f98b4a0895e3ee6579
* lang/qt/src/encryptarchivejob.cpp, lang/qt/src/encryptarchivejob.h,
lang/qt/src/encryptarchivejob_p.h,
lang/qt/src/qgpgmeencryptarchivejob.cpp,
lang/qt/src/qgpgmeencryptarchivejob.h: New.
* lang/qt/src/protocol.h (class Protocol): Add pure virtual member
function encryptArchiveJob
* lang/qt/src/protocol_p.h (Protocol::encryptArchiveJob): ... and
implement it.
* lang/qt/src/Makefile.am: Update accordingly.
* lang/qt/tests/run-encryptarchivejob.cpp: New.
* lang/qt/tests/Makefile.am: Add new test runner.
qt: Add data provider for list of file names.
+ commit 275a3a2c16d27e5bc87f7d80af2ee703a92b6758
* lang/qt/src/Makefile.am: Add new files and corresponding camel-case
header.
* lang/qt/src/dataprovider.h: Include interface from gpgme++ when
not building.
* lang/qt/src/filelistdataprovider.cpp,
lang/qt/src/filelistdataprovider.h: New.
cpp: Support new archive encryption flag.
+ commit d28ea8c6b3db008150e2bae99a33e30b55c4bc10
* lang/cpp/src/context.h (EncryptArchive): New flag.
* lang/cpp/src/context.cpp (encryptflags2encryptflags): Convert
EncryptArchive to corresponding gpgme encrypt flags.
(operator<<): Add new flag to debug stream.
cpp: Add convenience overload to set file name.
+ commit 261245a2e0e76568607c79a0c80372cb6f46444e
* lang/cpp/src/data.h, lang/cpp/src/data.cpp (setFileName): Add
overload.
2023-01-26 Ingo Klöcker <dev@ingo-kloecker.de>
cpp: Support all encryption flags.
+ commit 3e31f648e513bed0029b09104d416d25fca08868
* lang/cpp/src/context.h (WantAddress): New flag.
* lang/cpp/src/context.cpp (encryptflags2encryptflags): Convert
WantAddress to corresponding gpgme encrypt flags.
(operator<<): Add new flag to debug stream.
cpp: Pass ThrowKeyIds and EncryptWrap flags to GpgME.
+ commit 70aaf05a6a3eafd1ba96df71d03334337b1d071d
* lang/cpp/src/context.cpp (encryptflags2encryptflags): Convert
ThrowKeyIds and EncryptWrap to corresponding gpgme encrypt flags.
(operator<<): Add flags to debug stream.
core: Update required GnuPG version for new archive features.
+ commit 3580bb139b2e41f6c2397e506ee66f4892ceec62
* src/engine-gpg.c (gpg_decrypt, gpg_encrypt, gpg_encrypt_sign,
gpg_sign, gpg_verify): Require gpg 2.4.1.
2023-01-25 Ingo Klöcker <dev@ingo-kloecker.de>
core: Support usage of gpgtar for verifying a signed archive.
+ commit 5b79b323971cb0794c45791851d85f8a66f0a441
* src/gpgme.h.in (gpgme_verify_flags_t): New enum.
(GPGME_VERIFY_ARCHIVE): New const.
(gpgme_op_verify_ext_start): New func.
(gpgme_op_verify_ext): New func.
* src/gpgme.def, src/libgpgme.vers: Add new functions.
* src/verify.c (gpgme_op_verify_ext_start): New.
(gpgme_op_verify_ext): New.
(verify_start): Add arg FLAGS. Pass the flags to
_gpgme_engine_op_verify.
(gpgme_op_verify_start): Call gpgme_op_verify_ext_start with 0 for
FLAGS.
(gpgme_op_verify): Call gpgme_op_verify_ext with 0 for FLAGS.
* src/engine.c, src/engine.h (_gpgme_engine_op_verify): Add arg FLAGS.
* src/engine-backend.h (struct engine_ops): Add FLAGS to 'verify'.
* src/engine-gpg.c (gpg_verify): Add arg FLAGS. Set use_gpgtar engine
flag if GPGME_VERIFY_ARCHIVE flag is set. Check for new enough gpg. Use
add_gpg_arg for gpg-only options without a value. Set extra options for
gpgtar and pass input data to stdin when using gpgtar.
* src/engine-gpgsm.c (gpgsm_verify): Add arg FLAGS. Return error if
GPGME_VERIFY_ARCHIVE flag is set.
* src/engine-uiserver.c (uiserver_verify): Ditto.
* tests/run-verify.c (show_usage): New options --archive, --directory,
and --diagnostics.
(main): Parse new options. Verify and extract with gpgtar if --archive
is given. Set file name of output data to value of --directory option.
Print stderr of gpg/gpgtar if --diagnostics is given.
2023-01-24 Ingo Klöcker <dev@ingo-kloecker.de>
core: Support usage of gpgtar for decrypting an encrypted archive.
+ commit 95ea3bf831aeac201108876e73750692aa1ba3f5
* src/gpgme.h.in (GPGME_DECRYPT_ARCHIVE): New decryption flag.
* src/engine-gpg.c (gpg_decrypt): Set use_gpgtar engine flag if
GPGME_DECRYPT_ARCHIVE flag is set. Check for new enough gpg and
incompatible flags. Use add_gpg_arg_with_value for gpg-only options
with a value and add_gpg_arg for gpg-only options without a value.
Set extra options for gpgtar and pass input data to stdin when using
gpgtar.
* tests/run-decrypt.c (show_usage): New options --archive and
--directory.
(main): Parse new options. Decrypt with gpgtar if --archive is given.
Set file name of output data to value of --directory option.
2023-01-23 Ingo Klöcker <dev@ingo-kloecker.de>
core: Allow setting the base directory when creating an archive.
+ commit 419adf41afa40e5b34f646f2cb16d8aebda20048
* src/engine-gpg.c (gpg_encrypt, gpg_encrypt_sign, gpg_sign): Pass
file name set in data with --directory option to gpgtar.
* tests/run-encrypt.c (show_usage): New option --directory.
(main): Parse new option. Set file name of input data to option value.
* tests/run-sign.c (show_usage): New option --directory.
(main): Parse new option. Set file name of input data to option value.
2023-01-19 Ingo Klöcker <dev@ingo-kloecker.de>
core: Support usage of gpgtar for creating an encrypted signed archive.
+ commit 29cfcd316d1bfc98ca663369a9503cc169dd3447
* src/engine-gpg.c (gpg_encrypt_sign): Set use_gpgtar engine flag if
GPGME_ENCRYPT_ARCHIVE mode is set. Check for new enough gpg. Use
add_gpg_arg_with_value for gpg-only options with a value and
add_gpg_arg for gpg-only options without a value. Set extra options for
gpgtar and pass input data to stdin when using gpgtar.
* tests/run-encrypt.c (print_result): Rename to print_encrypt_result.
Print header.
(print_sign_result): New.
(show_usage): New option --sign.
(main): Parse new option. Sign and encrypt --sign is given.
Print results of signing additionally to results of encryption.
core: Support usage of gpgtar for creating a signed archive.
+ commit 0ca45e48b45af1978027e6fe26c7e406fd5ec74b
* src/gpgme.h.in (GPGME_SIG_MODE_ARCHIVE): New signature mode.
* src/engine-gpg.c (append_args_from_sender,
append_args_from_sig_notations): Use add_gpg_arg_with_value
for gpg-only options with a value.
(gpg_sign): Set use_gpgtar engine flag if GPGME_SIG_MODE_ARCHIVE mode
is set. Check for new enough gpg. Use add_gpg_arg_with_value for
gpg-only options with a value and add_gpg_arg for gpg-only options
without a value. Set extra options for gpgtar and pass input data to
stdin when using gpgtar.
* src/sign.c (sign_start): Add GPGME_SIG_MODE_ARCHIVE as valid mode.
* tests/run-sign.c (show_usage): New options --archive and
--diagnostics.
(main): Parse new options. Sign with gpgtar if --archive is given.
Print stderr of gpg/gpgtar if --diagnostics is given.
core: Fix --set-filename argument.
+ commit aa201b0bb63d703a3794826fac2e2013fb0c34e7
* src/engine-gpg.c (gpg_encrypt): Append equal sign to argument name.
2023-01-18 Ingo Klöcker <dev@ingo-kloecker.de>
core: Support usage of gpgtar for encryption.
+ commit 5d8316da1d3dd0ab73743898e76c51932d0f13e2
* src/gpgme.h.in (GPGME_ENCRYPT_ARCHIVE): New encryption flag.
* src/engine-gpg.c (arg_and_data_s): New field gpg_arg.
(engine_gpg): New flag use_gpgtar.
(_add_arg): Add argument gpg_arg and set it.
(add_arg_ext, add_arg_with_locp, add_arg, add_arg_pfx, add_arg_len):
Adjust call of _add_arg.
(add_arg_with_locp): Add argument front.
(add_gpg_arg, add_gpg_arg_with_value): New.
(gpg_new): Use add_gpg_arg_with_value for gpg-only options with a value
and add_gpg_arg for gpg-only options without.
(build_argv): Consider usage of gpgtar when counting arguments to pass
to gpg/gpgtar. Prepend "--gpg-args" to all gpg-only arguments if gpgtar
is used.
(start): Set program to use. Read diagnostics output from stderr when
using gpgtar. Do not pass --status-fd to gpgtar for gpg < 2.4.1. Use
add_gpg_arg_with_value for --lc-ctype and --lc-messages.
(gpg_encrypt): Set use_gpgtar engine flag if GPGME_ENCRYPT_ARCHIVE flag
is set. Check for new enough gpg and incompatible flags. Use
add_gpg_arg_with_value for gpg-only options with a value and
add_gpg_arg for gpg-only options without a value. Set extra options
for gpgtar and pass input data to stdin when using gpgtar.
* src/engine-gpgsm.c (gpgsm_encrypt): Return error if new flag is set.
* src/engine-uiserver.c (uiserver_encrypt): Ditto.
* tests/run-encrypt.c (show_usage): New options --archive and
--diagnostics.
(main): Parse new options. Encrypt with gpgtar if --archive is given.
Print stderr of gpg/gpgtar if --diagnostics is given.
core: Defer adding --status-fd and --logger-fd to argument list.
+ commit d56b3bc1cfa128d0246cfac59411adaad2579bc4
* src/engine-gpg.c (_append_to_arglist, _prepend_to_arglist): New.
(_add_arg): Use _append_to_arglist and _prepend_to_arglist.
(add_data_ext): New. Extends add_data.
(add_data): Uses add_data_ext.
(gpg_new): Do not add --status-fd and --logger-fd to argument list.
(start): Prepend --logger-fd and --status-fd to the argument list.
core: Extend gpgme_get_dirinfo to return the gpgtar name.
+ commit 12e490d97f2e7064bc9b5bea0d197790d10db106
* src/dirinfo.c (WANT_GPGTAR_NAME): New.
(dirinfo): Add field gpgtar_name.
(get_gpgconf_item): Build gpgtar_name on demand and return it.
(_gpgme_get_default_gpgtar_name) : New.
(gpgme_get_dirinfo): New value "gpgtar-name" for WHAT.
* src/util.h (_gpgme_get_default_gpgtar_name): New.
* tests/t-engine-info.c (main): Add gpgtar-name to the output.
2023-01-17 Ingo Klöcker <dev@ingo-kloecker.de>
core: Use "goto leave" pattern to clean up resources.
+ commit fbce7deb3b68af900f692591d5d05fa5c1a83f5f
* src/engine-gpg.c (build_argv): Initialize fd_data_map and argv. Goto
leave on error. Free fd_data_map and argv on error.
2023-01-16 Ingo Klöcker <dev@ingo-kloecker.de>
core: Do not add obsolete --no-sk-comments to command line.
+ commit 984ff7e3a2a9a261a0732cbdaf3b2f22d325b433
* src/engine-gpg.c (build_argv): Don't add "--no-sk-comments" to argv.
2023-01-05 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Fix comparisons of integer expressions of different signedness.
+ commit 64da77620a451653e9b8c41bb0c9e58e22967123
* lang/qt/tests/t-import.cpp (ImportTest::testImportWithImportFilter):
Make integer literal unsigned.
cpp: Fix comparisons of integer expressions of different signedness.
+ commit 2e9d72a0be8579d6f1d3c74c64873a9c2f844272
* lang/cpp/src/gpgrevokekeyeditinteractor.cpp
(GpgRevokeKeyEditInteractor::Private::nextState): Cast signed nextLine
value to std::size_t.
cpp: Expliticly declare compiler generated copy constructors.
+ commit dc9cc9aa0754d834388acabb5a68677f6512b960
* lang/cpp/src/configuration.h (Component, Option),
lang/cpp/src/data.h (Data),
lang/cpp/src/decryptionresult.h (DecryptionResult,
DecryptionResult::Recipient),
lang/cpp/src/encryptionresult.h (EncryptionResult, InvalidRecipient),
lang/cpp/src/engineinfo.h (EngineInfo),
lang/cpp/src/importresult.h (ImportResult, Import),
lang/cpp/src/key.h (Key, Subkey, UserID, UserID::Signature),
lang/cpp/src/keygenerationresult.h (KeyGenerationResult),
lang/cpp/src/keylistresult.h (KeyListResult),
lang/cpp/src/notation.h (Notation),
lang/cpp/src/signingresult.h (SigningResult, InvalidSigningKey,
CreatedSignature),
lang/cpp/src/swdbresult.h (SwdbResult),
lang/cpp/src/tofuinfo.h (TofuInfo),
lang/cpp/src/verificationresult.h (VerificationResult, Signature),
lang/cpp/src/vfsmountresult.h (VfsMountResult): Explitily declare
compiler generated copy constructor.
qt: Replace Q_DECL_OVERRIDE with override.
+ commit e16c368758e54b99d88529d3a10cecf36ed995b8
* lang/qt/src/defaultkeygenerationjob.h,
lang/qt/src/hierarchicalkeylistjob.h, lang/qt/src/multideletejob.h,
lang/qt/src/protocol_p.h, lang/qt/src/qgpgmeadduseridjob.h,
lang/qt/src/qgpgmechangeexpiryjob.h,
lang/qt/src/qgpgmechangeownertrustjob.h,
lang/qt/src/qgpgmechangepasswdjob.h, lang/qt/src/qgpgmedecryptjob.h,
lang/qt/src/qgpgmedecryptverifyjob.h, lang/qt/src/qgpgmedeletejob.h,
lang/qt/src/qgpgmedownloadjob.h, lang/qt/src/qgpgmeencryptjob.h,
lang/qt/src/qgpgmeexportjob.h, lang/qt/src/qgpgmegpgcardjob.h,
lang/qt/src/qgpgmeimportfromkeyserverjob.h,
lang/qt/src/qgpgmeimportjob.h, lang/qt/src/qgpgmekeyformailboxjob.h,
lang/qt/src/qgpgmekeygenerationjob.h, lang/qt/src/qgpgmekeylistjob.h,
lang/qt/src/qgpgmelistallkeysjob.h, lang/qt/src/qgpgmenewcryptoconfig.h,
lang/qt/src/qgpgmequickjob.h, lang/qt/src/qgpgmerefreshsmimekeysjob.h,
lang/qt/src/qgpgmesignencryptjob.h, lang/qt/src/qgpgmesignjob.h,
lang/qt/src/qgpgmesignkeyjob.h, lang/qt/src/qgpgmetofupolicyjob.h,
lang/qt/src/qgpgmeverifydetachedjob.h,
lang/qt/src/qgpgmeverifyopaquejob.h, lang/qt/src/qgpgmewkdlookupjob.h,
lang/qt/src/qgpgmewkspublishjob.h, lang/qt/src/threadedjobmixin.h,
lang/qt/tests/t-support.h: Replace Q_DECL_OVERRIDE with override
qt: Allow deferred start of import job.
+ commit 398375a0ab3b819694435c2e46b759d56b3735e0
* lang/qt/src/importjob.h (ImportJob::startLater): New pure virtual
method.
* lang/qt/src/qgpgmeimportjob.cpp, lang/qt/src/qgpgmeimportjob.h
(QGpgMEImportJob::startLater): New method.
* lang/qt/tests/t-import.cpp (ImportTest::testDeferredStart): New.
2023-01-04 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Support deferred start of jobs.
+ commit 18c2c0b2509069951829bb0bdd9b39dc467f5e6e
* lang/qt/src/job.cpp, lang/qt/src/job.h (Job::startNow): New method.
* lang/qt/src/job_p.h (JobPrivate::start): New pure virtual method.
* lang/qt/src/qgpgmechangeexpiryjob.cpp
(QGpgMEChangeExpiryJobPrivate::start): New.
* lang/qt/src/qgpgmeencryptjob.cpp (QGpgMEEncryptJobPrivate::start):
New.
* lang/qt/src/qgpgmeimportjob.cpp (QGpgMEImportJobPrivate::start): New.
* lang/qt/src/qgpgmelistallkeysjob.cpp
(QGpgMEListAllKeysJobPrivate::start): New.
* lang/qt/src/qgpgmesignencryptjob.cpp
(QGpgMESignEncryptJobPrivate::start): New.
* lang/qt/src/threadedjobmixin.h (Thread::hasFunction): New method.
(ThreadedJobMixin::run, ThreadedJobMixin::setWorkerFunction): New
methods.
qt: Explicitly instantiate private job classes.
+ commit 270d7523001a57a59ea0be617d8e71d4363e0d50
* lang/qt/src/Makefile.am: Add new files.
* lang/qt/src/changeexpiryjob_p.h, lang/qt/src/encryptjob_p.h,
lang/qt/src/importjob_p.h, lang/qt/src/listallkeysjob_p.h,
lang/qt/src/signencryptjob_p.h: New.
* lang/qt/src/changeexpiryjob.cpp, lang/qt/src/encryptjob.cpp,
lang/qt/src/importjob.cpp, lang/qt/src/listallkeysjob.cpp,
lang/qt/src/signencryptjob.cpp: Move JobPrivate subclasses to the new
private header files.
* lang/qt/src/job_p.h (jobPrivate): Remove lazy instantiation of private
job classes.
* lang/qt/src/qgpgmechangeexpiryjob.cpp (class
QGpgMEChangeExpiryJobPrivate): New.
(QGpgMEChangeExpiryJob::QGpgMEChangeExpiryJob): Instantiate private job
class.
* lang/qt/src/qgpgmeencryptjob.cpp (class
QGpgMEEncryptJobPrivate): New.
(QGpgMEEncryptJob::QGpgMEEncryptJob): Instantiate private job
class.
* lang/qt/src/qgpgmeimportjob.cpp (class
QGpgMEImportJobPrivate): New.
(QGpgMEImportJob::QGpgMEImportJob): Instantiate private job
class.
* lang/qt/src/qgpgmelistallkeysjob.cpp (class
QGpgMEListAllKeysJobPrivate): New.
(QGpgMEListAllKeysJob::QGpgMEListAllKeysJob): Instantiate private job
class.
* lang/qt/src/qgpgmesignencryptjob.cpp (class
QGpgMESignEncryptJobPrivate): New.
(QGpgMESignEncryptJob::QGpgMESignEncryptJob): Instantiate private job
class.
2022-12-08 Ingo Klöcker <dev@ingo-kloecker.de>
cpp: Handle status errors in the base edit interactor.
+ commit e7953dcf1376631719c73d9fa34bcb96752d3794
* lang/cpp/src/editinteractor.cpp (edit_interactor_callback_impl):
Handle status errors.
* lang/cpp/src/gpgrevokekeyeditinteractor.cpp
(GpgRevokeKeyEditInteractor::Private::nextState): Remove handling of
status errors.
cpp: Handle statuses that need no response in the base edit interactor.
+ commit c419376b85ff4a489f3bf7ad97ed656495792523
* lang/cpp/src/editinteractor.cpp (edit_interactor_callback_impl): Do
not call nextState() if status needs no response.
* lang/cpp/src/gpgaddexistingsubkeyeditinteractor.cpp
(GpgAddExistingSubkeyEditInteractor::Private::nextState),
lang/cpp/src/gpgadduserideditinteractor.cpp
(GpgAddUserIDEditInteractor::nextState),
lang/cpp/src/gpggencardkeyinteractor.cpp
(GpgGenCardKeyInteractor::nextState),
lang/cpp/src/gpgrevokekeyeditinteractor.cpp
(GpgRevokeKeyEditInteractor::Private::nextState),
lang/cpp/src/gpgsetexpirytimeeditinteractor.cpp
(GpgSetExpiryTimeEditInteractor::nextState),
lang/cpp/src/gpgsetownertrusteditinteractor.cpp
(GpgSetOwnerTrustEditInteractor::nextState),
lang/cpp/src/gpgsignkeyeditinteractor.cpp
(GpgSignKeyEditInteractor::nextState): Remove handling of statuses that
need no response.
2022-12-06 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Write path values with Unix directory separators.
+ commit d04d7b174fb7f27b7434cade22eafdd85b2d424e
* lang/qt/src/qgpgmenewcryptoconfig.cpp
(QGpgMENewCryptoConfigEntry::setURLValue): Remove conversion to native
directory separators.
2022-11-25 NIIBE Yutaka <gniibe@fsij.org>
gpgme.m4: Fix AM_PATH_GPGME_PTHREAD.
+ commit f9cbf2c8a839d2c3df20157cfe65b67a4b0bcb5a
* src/gpgme.m4 (AM_PATH_GPGME_PTHREAD): It's deprecated, since gpgme
supports threads and GNU C library has integrated pthread features.
2022-11-15 Ingo Klöcker <dev@ingo-kloecker.de>
core: Allow nullptr for key on card-edit.
+ commit 5903fa454a47d788432192a7860b90b57efd6a10
* src/edit.c (interact_start, edit_start): Return error if key is null
on edit-key.
2022-11-15 NIIBE Yutaka <gniibe@fsij.org>
gpgme.m4: Include _AM_PATH_GPGRT_CONFIG implementation.
+ commit abd51848bdc8a5ea5929f9cfb819a408dc53d463
* src/gpgme.m4 (_AM_PATH_GPGRT_CONFIG): New.
(_AM_PATH_GPGME_CONFIG): Require _AM_PATH_GPGRT_CONFIG.
m4: Update gpg-error.m4.
+ commit 2b7fcbf2f280ca88d76f8398138580155213552a
* m4/gpg-error.m4: Update from libgpg-error master.
2022-11-11 Ingo Klöcker <dev@ingo-kloecker.de>
core: Check for nullptr.
+ commit 6bcfbb3498f02dc86370cd4f2e3ccc5f9163d51a
* src/edit.c (interact_start, edit_start): Return error if key is null.
2022-11-04 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Allow disabling automatic trust database check on key listing.
+ commit b6593bda1f7bfaf6cf3b869b8379cbb2b619e00a
* lang/qt/src/Makefile.am (qgpgme_sources): Add listallkeysjob.cpp.
* lang/qt/src/listallkeysjob.cpp: New.
* lang/qt/src/listallkeysjob.h (enum ListAllKeysJob::Option,
typedef ListAllKeysJob::Options, ListAllKeysJob::setOptions,
ListAllKeysJob::options): New.
* lang/qt/src/qgpgmelistallkeysjob.cpp (list_keys): Set context flag
"no-auto-check-trustdb" if requested.
(QGpgMEListAllKeysJob::start, QGpgMEListAllKeysJob::exec): Add options
to call of list_keys.
core: New context flag "no-auto-check-trustdb"
+ commit 4f874ea431ba68ba70cf569741488502b1f61e66
* src/context.h (gpgme_context): Add field no_auto_check_trustdb.
* src/gpgme.c (gpgme_set_ctx_flag, gpgme_get_ctx_flag): Add flag
"no-auto-check-trustdb".
* src/engine-gpg.c (engine_gpg): Add flags.no_auto_check_trustdb.
(gpg_set_engine_flags): Set the flag.
(build_argv): Pass option to gpg.
* tests/run-keylist.c (show_usage, main): Add option --no-trust-check.
2022-11-02 NIIBE Yutaka <gniibe@fsij.org>
build: Update libassuan.m4.
+ commit 9f5e11729260b814c4903e2fbccfb3855073abd2
* m4/libassuan.m4: Update from libassuan master.
build: Prefer gpgrt-config when available.
+ commit 9f55dceca0cf2926d14cb4a70bd0cdc454d89f03
* src/gpgme.m4: Overriding the decision by --with-gpgme-prefix,
use gpgrt-config gpgme when gpgrt-config is available.
2022-10-26 Werner Koch <wk@gnupg.org>
core: New global flags "inst-type".
+ commit 1c9694f8d50b1236d2e4f2acbe23f972da36e437
* src/gpgme.c (gpgme_set_global_flag): Add flag "inst-type".
* src/w32-util.c (_gpgme_set_get_inst_type): New.
(INST_TYPE_GPG4WIN_DIR): New.
(INST_TYPE_GPGDESK_DIR): New.
(_gpgme_get_gpgconf_path): Implement this flag. Replace fixed strings
by the macros.
* src/posix-util.c (_gpgme_set_get_inst_type): New dummy.
2022-10-26 NIIBE Yutaka <gniibe@fsij.org>
python: Fix configure generating setup.py.
+ commit f1802682c3c8794edaca37966405bd1f070f5e01
* lang/python/setup.py.in: Handle the case, when substitutions
may be empty.
2022-10-24 Werner Koch <wk@gnupg.org>
core: Protect against a theoretical integer overflow in parsetlv.c.
+ commit 830e017e5d5f51d956d1188860302655f3e727e9
* src/parsetlv.c (_gpgme_parse_tlv): Detect integer overflow.
2022-10-24 Ingo Klöcker <dev@ingo-kloecker.de>
cpp: Allow setting the curve to use when generating ECC keys.
+ commit d9ac1385950217893be6f0d6fdb3324b8647d16b
lang/cpp/src/gpggencardkeyinteractor.h (class GpgGenCardKeyInteractor):
Add enum Curve. Add member function setCurve.
lang/cpp/src/gpggencardkeyinteractor.cpp
(class GpgGenCardKeyInteractor::Private): Initialize simple members
in-class. Add member curve.
(GpgGenCardKeyInteractor::~GpgGenCardKeyInteractor): Use default d'tor.
(GpgGenCardKeyInteractor::setCurve): New.
(GpgGenCardKeyInteractor::action): Return curve defaulting to
Curve25519.
2022-10-24 NIIBE Yutaka <gniibe@fsij.org>
build: Update gpg-error.m4.
+ commit d36905bb80c43987f2ca6980d3973d2111f89991
* m4/gpg-error.m4: Update from libgpg-error 1.46.
2022-10-14 Ingo Klöcker <dev@ingo-kloecker.de>
build,qt: Check whether building with -fPIC is needed.
+ commit 2ff09f474fb908dff83cce79c9d84b4fa21f5d7b
m4/qt6.m4: Use build test to check whether -fPIC is needed for building
a Qt application.
build,qt: Fail check for Qt if moc wasn't found.
+ commit 1792db58346cb39fd99332478d56dc190bae7836
* m4/qt5.m4, m4/qt6.m4: Perform build test only if moc was found.
build,qt: Always compile the Qt 6 test application with -fpic.
+ commit f7a46714283bb8c107c68d0f1227abfe223b2365
* m4/qt6.m4: Do not add -fpic to GPGME_QT6_CFLAGS. Add -fpic to CPPFLAGS
used for build test of simple Qt 6 application.
2022-10-11 Ingo Klöcker <dev@ingo-kloecker.de>
build,qt: Clean up all generated files.
+ commit e6a1b241b4e6a0a677ed8f0e4e287a5cc82d7fbb
* lang/qt/src/Makefile.am (CLEANFILES): Add QGpgmeConfig-w32.cmake.in
and QGpgmeQt6Config-w32.cmake.in.
qt,tests: Port test to QRegularExpression.
+ commit b2fb26baeada7b39331f71a30c654bfb8b53cb30
* lang/qt/tests/t-trustsignatures.cpp: Use QRegularExpression instead of
QRegExp.
qt: Remove obsolete code.
+ commit 4938c24a466bf05e707d3e6cbf759705adc7e8d6
* lang/qt/src/qgpgmenewcryptoconfig.cpp (struct Select1St): Remove.
build,qt: Allow building QGpgME for Qt 6.
+ commit 8d019bbb8d40de2cbed7ad6d3367c6a46a561fab
* configure.ac: Look for Qt 5 and/or Qt 6. Require C++17 if Qt 6 binding
is built. Build cmake files QGpgmeConfig* for Qt 5 and QGpgmeQt6Config*
for Qt 6.
(available_languages): Add "qt5" and "qt6".
(WANT_QT5, WANT_QT6): New conditionals.
* lang/qt/src/Makefile.am: Keep building libqgpgme for Qt 5. Build
libqgpgmeqt6 for Qt 6.
* lang/qt/tests/Makefile.am: Build tests for Qt 5 or Qt 6.
* lang/qt/src/QGpgmeQt6Config-w32.cmake.in.in,
lang/qt/src/QGpgmeQt6Config.cmake.in.in,
lang/qt/src/QGpgmeQt6ConfigVersion.cmake.in, m4/qt6.m4: New.
2022-10-10 Ingo Klöcker <dev@ingo-kloecker.de>
build,qt: Explicitly namespace a few Qt variables for Qt5.
+ commit 8e908029ffa03d21662030d3111dcf556b722e1a
m4/qt.m4: Rename to
m4/qt5.m4: this.
(FIND_QT): Rename to FIND_QT5.
(GPGME_QT): Change variable prefix to GPGME_QT5.
(GPGME_QTTEST: Change variable prefix to GPGME_QT5TEST.
configure.ac, lang/qt/src/Makefile.am, lang/qt/tests/Makefile.am:
Adjust accordingly.
2022-09-29 Werner Koch <wk@gnupg.org>
core: Fix SIG_CREATED status parsing for 0x1F sigs.
+ commit b1e5f3b183104a58d71821b7dbe44244d1c3f87f
* src/sign.c (parse_sig_created): Special case the rfc4880 "1F" status.
2022-09-15 NIIBE Yutaka <gniibe@fsij.org>
build:python: Don't use gpg-error-config/gpgme-config.
+ commit ae9258fbf3b9d434495ef11fc184a91fe7c4ca57
* lang/python/setup.py.in: Use @prefix@, @GPGME_CONFIG_LIBS@,
@GPGME_CONFIG_CFLAGS@, and @GPG_ERROR_CFLAGS@ of configure.
Fix for modern compiler.
+ commit fbd94076461ec55603d741121fa2ff6a861ea803
* src/argparse.c (show_version): It's no args.
2022-09-14 Ingo Klöcker <dev@ingo-kloecker.de>
cpp: Reject signing expired keys.
+ commit eedaaf70167f5dd7d8438235139b57527d3a961b
* lang/cpp/src/gpgsignkeyeditinteractor.cpp (enum SignKeyState): Add
new state REJECT_SIGN_EXPIRED.
(makeTable): Add entries for new state to transition map.
(GpgSignKeyEditInteractor::action): Handle new state.
2022-09-07 NIIBE Yutaka <gniibe@fsij.org>
Fix parsing import status for invalid fingerprint.
+ commit 80670f60ba971145dd6792e00d31c08c10cc8159
* src/import.c (parse_import): Handle invalid fingerprint case.
2022-08-22 Ingo Klöcker <dev@ingo-kloecker.de>
build: Omit -I... and -L... for standard paths in pkgconfig file.
+ commit 1522813888257aafb6d108b49fb7b24005d2693a
* configure.ac (GPGME_CONFIG_CFLAGS): Prefix with -I${includedir} for
non-standard include paths.
(GPGME_CONFIG_LIBS): Prefix with -L${libdir} for non-standard library
paths.
* src/gpgme.pc.in (Cflags): Remove hard-coded -I${includedir}.
(Libs): Remove hard-coded -L${libdir}.
build: Update ax_cxx_compile_stdcxx macro.
+ commit 73e96bfaa8176cf7b18bfa9edacaaf8d26989998
* m4/ax_cxx_compile_stdcxx.m4: Replace with current version from the
autoconf archive.
qt: Fix building with C++11.
+ commit 83176ad7d3e57ad7804d3c885e1b4fcd1d4d96f9
* lang/qt/src/qgpgmerefreshsmimekeysjob.cpp
(QGpgMERefreshSMIMEKeysJob::start): Replace 'auto' in lambda with the
actual type.
* lang/qt/src/qgpgmesignkeyjob.cpp (class TrustSignatureProperties): Add
default c'tor and c'tor initializing all members.
* lang/qt/src/util.cpp (toFingerprints): Replace 'auto' in lambda with
the actual type.
* lang/qt/tests/run-exportjob.cpp (createExportJob): Replace 'auto'
return type with actual type.
qt: Fix building with Qt6.
+ commit 05661806848b8a6ef9005e4a420d8613ddc868f1
* lang/qt/src/util.cpp, lang/qt/src/util.h: Replace forward declaration
with include.
2022-08-19 Ingo Klöcker <dev@ingo-kloecker.de>
cpp: Fix building with C++11.
+ commit f02c20cc9c5756690b07abfd02a43533547ba2ef
* lang/cpp/src/importresult.cpp (ImportResult::mergeWith): Replace
'auto' in lambdas with the actual type.
2022-08-18 Ingo Klöcker <dev@ingo-kloecker.de>
qt,tests: Make test pass on 32-bit systems.
+ commit 2e7a61b898fccc1c20000b79dee83cd980901fa9
* lang/qt/tests/t-addexistingsubkey.cpp
(AddExistingSubkeyJobTest::testAddExistingSubkeyWithExpiration): Handle
negative expiration date.
cpp: Fix handling of "no key" or "invalid time" situations.
+ commit 2fa5c80aeba4528b3bdf41ec5740e7db5d4b6d2b
* lang/cpp/src/gpgaddexistingsubkeyeditinteractor.cpp
(GpgAddExistingSubkeyEditInteractor::Private::nextState): Fix inverted
logic of string comparisons.
2022-08-17 Ingo Klöcker <dev@ingo-kloecker.de>
qt,tests: Make sure expiration time is interpreted as unsigned number.
+ commit f2b48de26b8f8c48c293423eda712831544924f6
* lang/qt/tests/t-addexistingsubkey.cpp,
lang/qt/tests/t-changeexpiryjob.cpp: Convert expiration time to
uint_least32_t.
qt,tests: Log the actual error code if the assertion fails.
+ commit 81d4b7f2d7077297d76af5728949d8f2bdff8cd5
* lang/qt/tests/t-addexistingsubkey.cpp (
AddExistingSubkeyJobTest::testAddExistingSubkeyAsync,
AddExistingSubkeyJobTest::testAddExistingSubkeySync,
AddExistingSubkeyJobTest::testAddExistingSubkeyWithExpiration): Use
QCOMPARE instead of QVERIFY for asserting equality.
qt: Make sure expiration time is interpreted as unsigned number.
+ commit c977424a1d39751fc5055131ad3f7819d421dcc8
* lang/qt/src/qgpgmeaddexistingsubkeyjob.cpp (add_subkey): Convert
expiration time to uint_least32_t.
2022-08-12 Andre Heinecke <aheinecke@gnupg.org>
w32: Add another fallback to look for gpgconf.exe.
+ commit 5f51a9b4589200486b2833124cbd93455f6ce208
* src/w32-util.c (_gpgme_get_gpgconf_path): Add fallback for
GnuPG VS-Desktop install scheme.
2022-08-11 Andre Heinecke <aheinecke@gnupg.org>
Qt: Fix working with no gpgconf in CryptoConfig.
+ commit 586846209b08ce5e9545f53f21de884eb4079115
* lang/qt/src/cryptoconfig.cpp (CryptoConfig::entry): Add nullptr
checks.
2022-08-10 Werner Koch <wk@gnupg.org>
Release 1.18.0.
+ commit 26ff163bd6912fa7e8cb522d0799e17095ac1efb
tests: Make t-edit-sign more robust.
+ commit 9ee74b68e688b474881768a5ae59d857397c8fbf
* tests/gpg/t-edit-sign.c (interact_fnc): Provide the default answer.
2022-08-10 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Add missing include.
+ commit 5d91182c955d128c8ff7cdd29189fc3ae06201d9
* lang/qt/tests/t-revokekey.cpp: Include QDebug.
2022-08-09 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Add job to set the primary user ID of OpenPGP keys.
+ commit db7d79063f57c6e0ccf382fdf1cf47d514e12f6e
* lang/qt/src/qgpgmesetprimaryuseridjob.cpp,
lang/qt/src/qgpgmesetprimaryuseridjob.h,
lang/qt/src/setprimaryuseridjob.h: New.
* lang/qt/src/protocol.h (class Protocol): Add pure virtual member
function setPrimaryUserIDJob.
* lang/qt/src/protocol_p.h (Protocol::setPrimaryUserIDJob): New.
* lang/qt/src/job.cpp, lang/qt/src/Makefile.am: Update accordingly.
* lang/qt/tests/t-setprimaryuserid.cpp: New.
* lang/qt/tests/Makefile.am: Add new test.
cpp: Add support for gpgme_op_set_uid_flag.
+ commit 125867f268f2a49ff060a7adc859500500b77025
* lang/cpp/src/context.cpp, lang/cpp/src/context.h
(Context::setPrimaryUid, Context::startSetPrimaryUid): New.
2022-08-09 NIIBE Yutaka <gniibe@fsij.org>
python: Don't call __del__ from __exit__ method.
+ commit f8d99bb9e4a7f6229c19c4fbd951ccad6fa97bde
* lang/python/src/core.py (Context, Data): Don't call __del__
from __exit__ method, as the object may be still in use.
* lang/python/tests/t-idiomatic.py: Fix the test.
2022-08-05 NIIBE Yutaka <gniibe@fsij.org>
python: Don't access gpgme with wrapped=None.
+ commit 180899c7c313335128606bfff738da00dce4f5c9
* lang/python/src/core.py (GpgmeWrapper, Context): Check self.wrapped
is valid.
2022-08-05 Jasper Spaans <jasper@startmail.com>
python: Reset passphrase callback correctly.
+ commit b2f224a471fecce566443bf0f0e554de6f567f4e
* lang/python/src/core.py (Context(GpgmeWrapper)): Reset passphrase
callback correctly, for encrypt, decrypt, create_key, and
create_subkey methods.
2022-08-04 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Remove job for refreshing OpenPGP keys.
+ commit c3b183831db5a2a490ba49bf4804730679eb59d0
* lang/qt/src/qgpgmerefreshopenpgpkeysjob.cpp,
lang/qt/src/qgpgmerefreshopenpgpkeysjob.h,
lang/qt/src/refreshopenpgpkeysjob.h: Remove.
* lang/qt/src/Makefile.am, lang/qt/src/job.cpp: Update accordingly.
* lang/qt/src/protocol.h (class Protocol): Remove pure virtual member
function refreshOpenPGPKeysJob.
* lang/qt/src/protocol_p.h (Protocol::refreshOpenPGPKeysJob): Remove.
* lang/qt/tests/run-refreshkeysjob.cpp (main): Use ReceiveKeysJob for
OpenPGP keys.
2022-07-21 NIIBE Yutaka <gniibe@fsij.org>
build: Update config.guess and config.sub.
+ commit cc37447b625b45efb5c94c40461084460f03f24a
* build-aux/config.guess: Update from upstream.
* build-aux/config.sub: Ditto.
build: Fix for modern Autoconf.
+ commit 16020c5fd96427961734c4a8f5b2b5e901b1bb60
* m4/glib-2.0.m4: Use AC_RUN_IFELSE and AC_LINK_IFELSE.
2022-07-05 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Allow setting the file name of signed and encrypted data.
+ commit 5436b309fe67dd3c4531f751d99c98128ca66e4d
* lang/qt/src/Makefile.am (qgpgme_sources): Add signencryptjob.cpp.
* lang/qt/src/signencryptjob.cpp: New.
* lang/qt/src/signencryptjob.h (class SignEncryptJob): Add member
functions setFileName, fileName.
* lang/qt/src/qgpgmesignencryptjob.cpp (sign_encrypt): Set file name of
input.
(sign_encrypt_qba, QGpgMESignEncryptJob::exec,
QGpgMESignEncryptJob::start): Pass file name to sign_encrypt resp.
sign_encrypt_qba.
qt: Allow setting the file name of encrypted data.
+ commit bc10169724d2806b38f91beff39ef637b5e52b8d
* lang/qt/src/Makefile.am (qgpgme_sources): Add encryptjob.cpp.
* lang/qt/src/encryptjob.cpp: New.
* lang/qt/src/encryptjob.h (class EncryptJob): Add member functions
setFileName, fileName.
* lang/qt/src/qgpgmeencryptjob.cpp (encrypt): Set file name of input.
(encrypt_qba, QGpgMEEncryptJob::exec, QGpgMEEncryptJob::start): Pass
file name to encrypt resp. encrypt_qba.
2022-07-04 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Fix filename of cmake config files for w32.
+ commit 31423945d214292f24dd1f700cd8ab53722dd1eb
* lang/qt/src/Makefile.am (EXTRA_DIST): Add
QGpgmeConfig-w32.cmake.in.in.
2022-07-04 Laurent Montel <montel@kde.org>
qt: Add #include <QStringList> needed for building against qt6.
+ commit d42323f90213157a5e847bfa89bee55a29ee8df0
* lang/qt/src/downloadjob.h, lang/qt/src/exportjob.h,
lang/qt/src/keylistjob.h lang/qt/src/refreshkeysjob.h: in qt6 we need
to use #include <QStringList>
2022-06-30 Ingo Klöcker <dev@ingo-kloecker.de>
cpp: Remove obsolete compatibility with KF5 variants.
+ commit 6e45da30ae787dd45836e55d34f7aa4e001b641c
* lang/cpp/src/GpgmeppConfig-w32.cmake.in.in,
lang/cpp/src/GpgmeppConfig.cmake.in.in: Remove find_package() call.
2022-06-28 NIIBE Yutaka <gniibe@fsij.org>
build: When no gpg-error-config, not install gpgme-config.
+ commit 02a2f350359013bf33c3957e95c98726273ced8c
* configure.ac (USE_GPGRT_CONFIG): New.
* src/Makefile.am [USE_GPGRT_CONFIG]: Conditionalize the install
of gpgme-config.
build: Update gpg-error.m4.
+ commit aa94b4cee5aabfa9097abd4560fdf002516db82a
* m4/gpg-error.m4: Update from libgpg-error.
2022-06-14 Ingo Klöcker <dev@ingo-kloecker.de>
tests: Add support for clear text signatures to test runner.
+ commit d59cf1725755f24e79a0ce12ddc59fedc97292c6
* tests/run-sign.c (show_usage): Add new argument "--clear".
(main): Handle new argument "--clear".
2022-06-10 Ingo Klöcker <dev@ingo-kloecker.de>
qt,tests: Allow 1-day-offset for expiration date.
+ commit fd813f5c3938423137db1fcb02c3c527bd9f58c6
* lang/qt/tests/t-various.cpp (TestVarious::testSignKeyWithExpiration):
Assert that the expiration date is either 2106-02-05 or 2106-02-04.
qt: Prevent u32 overflow when calculating expiration date.
+ commit 7870fdbfeff47755138136dbd6648b18f6b4fc76
* lang/qt/src/qgpgmesignkeyjob.cpp (sign_key): Change maxAllowedDate to
2106-02-05. Change log-level from warning to debug.
* lang/qt/tests/t-various.cpp (TestVarious::testSignKeyWithExpiration):
Remove check for warning. Adapt assertion.
2022-06-09 Ingo Klöcker <dev@ingo-kloecker.de>
Revert "tests: Avoid problems with local time across a day boundary."
+ commit 918afc809d40e057266ced6dfc98a5b3e5b4d3ee
This reverts commit 5ba0e454a37c9b0d3badddfc2dad8bcc7c7af874.
core: Handle import status lines during keylist operation.
+ commit 5d19eb4ad5ad9e93c34bf9b03ed6f583c6bf8491
* src/keylist.c (gpgme_op_keylist_from_data_start): Call
_gpgme_op_import_init_result.
2022-05-12 Andre Heinecke <aheinecke@gnupg.org>
cpp: Export KeyListModeSaver.
+ commit f3011b5a1918dbe9d2b1316707a2c1034c847507
* lang/cpp/src/context.h (Context::KeyListModeSaver): Add Export.
2022-05-06 Ingo Klöcker <dev@ingo-kloecker.de>
core: Set SECRET flag of subkeys stored on smart cards.
+ commit f72cf726ca749a138a8950b02c51e7b3a50c6a83
* src/keylist.c (parse_sec_field15): Set SECRET flag.
2022-05-05 Ingo Klöcker <dev@ingo-kloecker.de>
cpp: Output more properties of a subkey.
+ commit 306fd9c915cbccddbd146f37ba9bd826f10d2535
* lang/cpp/src/key.cpp (ostream operator<< for Subkey): Fix wrong output
of isInvalid and isDisabled flags. Add output of key grip, card serial
number and the flags isSecret, isQualified, isDeVs, and isCardKey.
cpp,tests: Actually parse the --with-secret option.
+ commit e029fd27350fcbda1b4689bc557e996d749d78ac
* lang/cpp/tests/run-keylist.cpp (main): Handle --with-secret option.
Print error for unknown option.
qt: Revert change of result signal of RefreshKeysJob.
+ commit 9e8c8e448ec83c454fb310f80ce0bf9f828a7145
* lang/qt/src/refreshkeysjob.h (RefreshKeysJob::result): Remove optional
parameters auditLogAsHtml and auditLogError.
* lang/qt/tests/run-refreshkeysjob.cpp (main): Update accordingly.
qt: Use lambda instead of std::bind.
+ commit 15a4940aa73019bce002302b14aaa73312da3df4
* lang/qt/src/qgpgmerefreshopenpgpkeysjob.cpp
(QGpgMERefreshOpenPGPKeysJob::start): Replace std::bind call with a
lambda.
2022-05-04 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Emit import result when refreshing OpenPGP keys.
+ commit c64a8daf507a2216611861a12f312466b0bae8b2
* lang/qt/src/refreshopenpgpkeysjob.h: New.
* lang/qt/src/Makefile.am, lang/qt/src/job.cpp: Update accordingly.
* lang/qt/src/qgpgmerefreshopenpgpkeysjob.h (class
QGpgMERefreshOpenPGPKeysJob): Derive from RefreshOpenPGPKeysJob with
result ImportResult. Remove unused start overload.
* lang/qt/src/qgpgmerefreshopenpgpkeysjob.cpp (locate_external_keys):
Ignore result of KeyListJob. Return import result.
(receive_keys): Return import result.
(refresh_keys): Merge the two import results and return the result.
* lang/qt/src/protocol.h (class Protocol): Add pure virtual member
function refreshOpenPGPKeysJob.
* lang/qt/src/protocol_p.h (Protocol::refreshKeysJob): Return nullptr
for OpenPGP protocol.
(Protocol::refreshOpenPGPKeysJob): New.
* lang/qt/tests/run-refreshkeysjob.cpp (main): Use appropriate job
for the protocol of the key to refresh.
cpp: Allow retrieving import result of key listing with locate mode.
+ commit 3519d6117332f25b601c9c0636878baf4e8cf55b
* lang/cpp/src/context_p.h (enum Context::Private::Operation): Add
value KeyListWithImport.
* lang/cpp/src/context.cpp (Context::startKeyListing, Context::nextKey):
Set lastop to KeyListWithImport if keylist mode includes Locate.
core: Handle import status lines during keylist operation.
+ commit f3ca57dfd7af19f9b2fd01616a81dc889707a4d3
* src/import.c (import_status_handler): Rename to ...
(_gpgme_import_status_handler): this. Make non-static.
(_gpgme_op_import_init_result): New.
(_gpgme_op_import_start, _gpgme_op_import_keys_start,
_gpgme_op_receive_keys_start): Call _gpgme_op_import_init_result.
* src/keylist.c (keylist_status_handler): Call
_gpgme_import_status_handler to handle import status lines.
(gpgme_op_keylist_start, gpgme_op_keylist_ext_start): Call
_gpgme_op_import_init_result.
* src/ops.h (_gpgme_op_import_init_result,
_gpgme_import_status_handler): New prototypes.
cpp: Allow merging the results of two imports.
+ commit d911a1536488a5645f257a48b4d9cf221c0ed6b6
* lang/cpp/src/importresult.h, lang/cpp/src/importresult.cpp (class
ImportResult): Add member function mergeWith.
2022-05-02 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Apply compiler hint.
+ commit f1a354fd57d6cc9e34ff33ea60aa4ef0aca382a3
* lang/qt/tests/t-verify.cpp (VerifyTest::testSignatureKey): Use
reference type to prevent copying.
qt: Use GpgME::Locate alias.
+ commit 540e7bf3d457a78497b6b7ac33b486b3c5b50857
* lang/qt/src/protocol_p.h (Protocol::locateKeysJob): Use Locate alias
instead of Extern|Local.
* lang/qt/src/qgpgmekeyformailboxjob.cpp (do_work): Ditto.
qt: Add job for refreshing OpenPGP keys.
+ commit e12861f18c6b431b40bfa78eb6f1d149690a5fcd
* lang/qt/src/qgpgmerefreshopenpgpkeysjob.h,
lang/qt/src/qgpgmerefreshopenpgpkeysjob.cpp: New.
* lang/qt/src/Makefile.am: Add new files.
* lang/qt/src/protocol_p.h (Protocol::refreshKeysJob): Add support for
OpenPGP protocol.
cpp: Add RAII class for saving/restoring the key list mode.
+ commit 34786132fed0a776d4cd314c44ed62e29ff75328
* lang/cpp/src/context.h, lang/cpp/src/context.cpp (class Context):
Add nested class KeyListModeSaver.
qt: Add debug helper for Result classes with output stream operator.
+ commit 99fd565889f3d22459ff82296b206fa228a4c468
* lang/qt/src/util.h (toLogString): New.
qt: Factor out helper for getting the fingerprints of some keys.
+ commit 0c304beeaab54dc25a8572270704fd5fa90cf836
* lang/qt/src/util.h, lang/qt/src/util.cpp (toFingerprints): New.
* lang/qt/src/qgpgmerefreshsmimekeysjob.cpp: Use the helper.
2022-04-29 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Fix connection to readyReadStandardOutput signal.
+ commit 54c4fd16d1832fcce05aa9e471a4acebff0e3269
* lang/qt/src/qgpgmerefreshsmimekeysjob.h,
lang/qt/src/qgpgmerefreshsmimekeysjob.cpp
(QGpgMERefreshSMIMEKeysJob::slotStderr): Remove.
* lang/qt/src/qgpgmerefreshsmimekeysjob.cpp
(QGpgMERefreshSMIMEKeysJob::startAProcess): Handle
readyReadStandardOutput and readyReadStandardError signals with lambdas.
qt: Add test runner for refresh job.
+ commit 9686258bd16707a5e1eb292262a6c28faa581c34
* lang/qt/tests/run-refreshkeysjob.cpp: New.
* lang/qt/tests/Makefile.am (run_refreshkeysjob_SOURCES): New.
(noinst_PROGRAMS): Add new build artifact.
qt: Make RefreshKeysJob result compatible with standard job result.
+ commit f4c35609257156d0e32b8dd7315011b484919f05
* lang/qt/src/refreshkeysjob.h (RefreshKeysJob::result): Add optional
parameters auditLogAsHtml and auditLogError.
qt: Allow refreshing a list of keys.
+ commit fd97cbaa44b8e7914089319afac1e776c9a64283
* lang/qt/src/refreshkeysjob.h (class RefreshKeysJob): Add pure virtual
member function start taking a list of keys.
* lang/qt/src/qgpgmerefreshsmimekeysjob.h,
lang/qt/src/qgpgmerefreshsmimekeysjob.cpp (class
QGpgMERefreshSMIMEKeysJob): Implement new member function.
qt: Minor refactoring.
+ commit 62e770971786f272ecc079b78b11e798ec699d77
* lang/qt/src/qgpgmerefreshsmimekeysjob.cpp: Use namespace QGpgME.
qt: Rename QGpgMERefreshKeysJob to QGpgMERefreshSMIMEKeysJob.
+ commit f47bc992ae6ca6a9043d4de5bfc10179e4676256
* lang/qt/src/qgpgmerefreshkeysjob.h,
lang/qt/src/qgpgmerefreshkeysjob.cpp: Change name to
* lang/qt/src/qgpgmerefreshsmimekeysjob.h,
lang/qt/src/qgpgmerefreshsmimekeysjob.cpp: ... this, and adapt the
include guard.
(class QGpgMERefreshKeysJob): Rename to QGpgMERefreshSMIMEKeysJob.
* lang/qt/src/Makefile.am: Adapt mentioned file names accordingly.
* lang/qt/src/protocol_p.h (Protocol::refreshKeysJob): Use renamed
class.
2022-04-28 Ingo Klöcker <dev@ingo-kloecker.de>
cpp,tests: Verify that requested keylist mode is used.
+ commit 359906c8bcde7e351540708777e3678fee0cc2c1
* lang/cpp/tests/run-getkey.cpp, lang/cpp/tests/run-keylist.cpp (main):
Check used keylist mode.
2022-04-27 Ingo Klöcker <dev@ingo-kloecker.de>
cpp: Support new keylist modes.
+ commit dea872f21ff77cd58bafe0966d89d6331c8d2e07
* lang/cpp/src/global.h (ForceExtern, LocateExternal, KeyListModeMask):
New.
* lang/cpp/src/context.cpp (operator<<): Add check.
* lang/cpp/src/util.h (gpgme_keylist_mode_t,
convert_from_gpgme_keylist_mode_t): Handle ForceExtern.
* lang/cpp/tests/run-getkey.cpp (show_usage, main): Add arguments
--force-extern and --locate-external.
* lang/cpp/tests/run-keylist.cpp (show_usage, main): Ditto.
core: Support --locate-external-keys command of gpg.
+ commit aff9aaac68450e76f84d0f9a3feabffe9e82dd7e
* src/gpgme.h.in (GPGME_KEYLIST_MODE_FORCE_EXTERN): New.
(GPGME_KEYLIST_MODE_LOCATE_EXTERNAL): New.
* src/gpgme.c (gpgme_set_keylist_mode): Check for invalid mode.
* src/engine-gpg.c (gpg_keylist_build_options): Use
"--locate-external-keys" instead of "--locate-keys" if flag is set.
* src/gpgme-json.c (op_keylist): New flag "force-extern".
* src/gpgme-tool.c (gt_get_keylist_mode, cmd_keylist_mode): Handle
new mode.
2022-04-25 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Rely on the bad passphrase error reported by gpg.
+ commit 512f11b458d82bb8a42b5764f11e11978173f896
* lang/qt/src/qgpgmedecryptverifyjob.cpp (patch_decryption_result):
Removed.
(decrypt_verify): Remove usage of patch_decryption_result.
core: Return BAD_PASSPHRASE error code on symmetric decryption.
+ commit e21c3b559dfb59c61f789572071e72e31bb089bf
* src/decrypt.c (op_data_t): Add field symdecrypt_failed.
(parse_status_error): Handle BAD_PASSPHRASE error code.
(_gpgme_decrypt_status_handler): Consult new field.
2022-04-22 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Report better error if decryption failed because of bad passphrase.
+ commit d8e5871dca9425811873058150677a158235613d
* lang/qt/src/qgpgmedecryptverifyjob.cpp (patch_decryption_result): New.
(decrypt_verify): Call patch_decryption_result.
cpp: Allow changing the error of a result.
+ commit 321c8a0254f4729ff1ffe56956fb049555272321
* lang/cpp/src/result.h (class Result): Add member function setError.
2022-04-05 Ingo Klöcker <dev@ingo-kloecker.de>
cpp: Handle canceling of an edit operation.
+ commit 28cdbfdccb347e1ef15f794d4afd36f9275f073c
* lang/cpp/src/editinteractor.cpp
(CallbackHelper::edit_interactor_callback_impl): Check for error _or_
canceled state.
cpp: Return actual error if revocation fails.
+ commit db532eca8ebd64536985e7a40af22e803e3b3df9
* lang/cpp/src/editinteractor.cpp, lang/cpp/src/editinteractor.h
(EditInteractor::parseStatusError): New.
* lang/cpp/src/gpgrevokekeyeditinteractor.cpp
(GpgRevokeKeyEditInteractor::Private::nextState): Handle status
error.
cpp: Add internal utility function for splitting strings.
+ commit c965b45bcd915ce92943fd4d436b5bd790f0442f
* lang/cpp/src/util.h (split): New.
cpp: Do not export symbols of the Private class.
+ commit 4beb6f419954b0df475d88bef7fc8b8065848b75
* lang/cpp/src/gpgrevokekeyeditinteractor.h (class
GpgRevokeKeyEditInteractor): Mark nested class Private as hidden.
2022-04-05 NIIBE Yutaka <gniibe@fsij.org>
core: Don't use internal __assuan functions.
+ commit a36d71a8e33e817b1cc2fde5d0fd476ddc6ac560
* configure.ac (nanosleep): Detect.
* src/assuan-support.c: Don't use __assuan_usleep.
(my_socketpair): Don't use __assuan_socketpair.
core: Don't keep using deprecated ath_ API.
+ commit 110a375401878b72984241c0dd84cb7fdeaae795
* src/posix-io.c: Don't include ath.h.
(_gpgme_io_read): Call read directly.
(_gpgme_io_write): Call write directly.
(_gpgme_io_waitpid): Call waitpid directly.
(_gpgme_io_select_select): Call select directly.
(_gpgme_io_recvmsg): Call recvmsg directly.
(_gpgme_io_sendmsg): Call sendmsg directly.
(_gpgme_io_connect): Call connect directly.
* src/assuan-support.c: Don't include ath.h.
(my_waitpid): Call waitpid directly.
2022-03-31 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Check arguments passed to the revoke key job.
+ commit 7f089165e3ae42274e75e0e6fa1c45ca641f4023
* lang/qt/src/qgpgmerevokekeyjob.cpp (check_arguments): New.
(QGpgMERevokeKeyJob::start, QGpgMERevokeKeyJob::exec): Call
check_arguments.
* lang/qt/tests/t-revokekey.cpp (RevokeKeyJobTest): Add member functions
testErrorHandling_nullKey, testErrorHandling_invalidReason,
testErrorHandling_invalidDescription.
2022-03-30 Ingo Klöcker <dev@ingo-kloecker.de>
qt,tests: Verify reason code and description of revocation.
+ commit 3856ae8621bb28873123578a64eb81a4a591758e
* lang/qt/tests/t-revokekey.cpp (RevokeKeyJobTest::testRevokeKeyAsync,
RevokeKeyJobTest::testRevokeKeySync_noReasonDescription,
RevokeKeyJobTest::testRevokeKeySync_oneLineReasonDescription,
RevokeKeyJobTest::testRevokeKeySync_twoLinesReasonDescription): Call
verifyReason.
(class RevokeKeyJobTest): Add private member function verifyReason.
qt: Add job to revoke own OpenPGP keys.
+ commit 41297520da32081d0a34ac2799812f210b7a9335
* lang/qt/src/revokekeyjob.h, lang/qt/src/qgpgmerevokekeyjob.h,
lang/qt/src/qgpgmerevokekeyjob.cpp: New.
* lang/qt/src/protocol.h (class Protocol): Add pure virtual member
function revokeKeyJob.
* lang/qt/src/protocol_p.h (Protocol::revokeKeyJob): New.
* lang/qt/src/job.cpp, lang/qt/src/Makefile.am: Update accordingly.
* lang/qt/tests/Makefile.am (the_tests, moc_files, noinst_PROGRAMS):
Add new test.
(t_revokekey_SOURCES): New.
* lang/qt/tests/t-revokekey.cpp: New.
cpp: Add interactor to revoke a key.
+ commit d96e8a7a6bfcaad4587dd2bb648aa764b0d4e1ba
* lang/cpp/src/global.h (enum class RevocationReason): New.
* lang/cpp/src/gpgrevokekeyeditinteractor.cpp,
lang/cpp/src/gpgrevokekeyeditinteractor.h: New.
* lang/cpp/src/Makefile.am: Add new files.
2022-03-28 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Set default visibility of all symbols to hidden.
+ commit 3b3b36a60749ea5c3b166bb1c8f3f6dda8ce6fcd
* configure.ac: Add -fvisibility=hidden to GPGME_QT_CFLAGS if gcc
supports the flag.
cpp: Set default visibility of all symbols to hidden.
+ commit fe588fef0963987b5624dc8c4bc73202ac2c9298
* configure.ac: Add -fvisibility=hidden to GPGME_CPP_CFLAGS if gcc
supports the flag.
* lang/cpp/src/Makefile.am (AM_CPPFLAGS): Add GPGME_CPP_CFLAGS.
* m4/ax_gcc_func_attribute.m4: New.
cpp: Put local helper function into unnamed namespace.
+ commit 92139e7b6b5fe84015d44d9516f3e1df7a3fc3bc
lang/cpp/src/context.cpp (to_auditlog_flags): Wrap in unnamed namespace.
2022-03-16 NIIBE Yutaka <gniibe@fsij.org>
core: Support keylist mode for op_keylist_from_data.
+ commit b2a2158384a9f048ff61ee0cebef8346055f0454
* src/engine-backend.h (keylist_data): Add MODE argument.
* src/engine-gpg.c (gpg_keylist_data): Add MODE argument.
* src/engine.c (_gpgme_engine_op_keylist_data): Likewise.
* src/engine.h (_gpgme_engine_op_keylist_data): Declaration.
* src/keylist.c (gpgme_op_keylist_from_data_start): Call
_gpgme_engine_op_keylist_data with ctx->keylist_mode.
2022-03-07 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Add missing include of config.h.
+ commit 55861ba9ccc6b1087cb81acd93bed81fc0787208
* lang/qt/src/util.cpp: Include config.h.
2022-03-06 Werner Koch <wk@gnupg.org>
Post release updates.
+ commit f61a14f189d33ca320f6c4ee6323f1e48c46e4ea
Release 1.17.1.
+ commit ee50a38823daaa16b151a549a7dafef34bbd1e81
* configure.ac: Bump QT LT version to C15/A0/R0.
2022-02-17 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Fix ABI compatibility with 1.16.0.
+ commit ad3aabdd8a64156c7e3a75d695ae1ab2c4bec841
* lang/qt/src/protocol.h (class Protocol): Move new virtual methods to
the end of the class.
2022-02-07 Werner Koch <wk@gnupg.org>
Release 1.17.0.
+ commit 72bb46b34f5191f672a5356e2f152e6ad9440554
qt: Fix build for older Qt versions.
+ commit 451a42f0d21c5a402d455c78d63eeaaa139e56cc
* lang/qt/src/util.cpp: Include <functional>.
2022-02-03 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Add job to import keys given by key ids.
+ commit ca1c30b6fa29a7a1f18ecda14375b47893a0c1a3
* lang/qt/src/receivekeysjob.h, lang/qt/src/qgpgmereceivekeysjob.h,
lang/qt/src/qgpgmereceivekeysjob.cpp: New.
* lang/qt/src/protocol.h (class Protocol): Add pure virtual member
function receiveKeysJob.
* lang/qt/src/protocol_p.h (Protocol::receiveKeysJob): Implement it.
* lang/qt/src/job.cpp, lang/qt/src/Makefile.am: Update accordingly.
* lang/qt/tests/run-receivekeysjob.cpp: New.
* lang/qt/tests/Makefile.am: Add new test runner.
qt: Add helper for converting QStringList to vector of strings.
+ commit ec8d1ee13fce21a1f52b084212827914dfcd0db6
* lang/qt/src/util.h, lang/qt/src/util.cpp: New.
* lang/qt/src/Makefile.am (qgpgme_sources, private_qgpgme_headers):
Add new files.
cpp: Allow import of keys given by key ids.
+ commit bbaeeb5b9d5cca99c332cb88c7ae5f14e8745427
* lang/cpp/src/context.h (class Context): Add overloads of member
functions importKeys and startKeyImport
* lang/cpp/src/context.cpp (class Context): ... and implement them.
cpp: Add internal adapter for passing a vector of strings to gpgme.
+ commit 3d7810e8d940229435feb8f9811607ee831abf4b
* lang/cpp/src/util.h (class StringsToCStrings): New.
* lang/cpp/src/util.cpp: New.
* lang/cpp/src/Makefile.am: Add new file.
core: New function gpgme_op_receive_keys.
+ commit 3c2cff74b535422532e1256ee8177fa9c03eaf18
* src/gpgme.h.in (gpgme_op_receive_keys_start, gpgme_op_receive_keys):
New.
* src/gpgme.def, src/libgpgme.vers: Add them.
* src/engine-backend.h (struct engine_ops): Add arg keyids to field
'import'.
* src/engine.h, src/engine.c (_gpgme_engine_op_import): Add arg keyids.
* src/engine.c (_gpgme_engine_op_import): Forward new arg keyids.
* src/import.c: (_gpgme_op_import_start, _gpgme_op_import_keys_start):
Pass NULL to new arg of _gpgme_op_import_start.
(_gpgme_op_receive_keys_start, gpgme_op_receive_keys_start,
gpgme_op_receive_keys): New.
* src/engine-gpg.c (gpg_import): Add arg keyids. Extend check for
valid arguments. Build command line if keyids are given.
* src/engine-gpgsm.c (gpgsm_import): Add arg keyids. Return error if
keyids is not NULL.
tests/run-receive-keys.c: New.
tests/Makefile.am (noinst_PROGRAMS): Add new test runner.
2022-01-17 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Remove superfluous include.
+ commit ec71eb1d7d9f1156cc48d1c9959b07981ecd16e5
* lang/qt/src/importjob.h: Remove include of QByteArray.
qt: Fix build without installed GpgME++ headers.
+ commit 9c03bde06be97403a8c392a3befc6c203bcdce6d
* lang/qt/src/importjob.h, lang/qt/src/wkdlookupresult.h: Include
headers of GpgME++ without "gpgme++/" prefix when building QGpgme.
* lang/qt/src/qgpgmeimportjob.cpp, lang/qt/src/qgpgmewkdlookupjob.cpp,
lang/qt/src/wkdlookupresult.cpp, lang/qt/tests/t-import.cpp: Include
headers of GpgME++ without "gpgme++/" prefix.
2022-01-13 Ingo Klöcker <dev@ingo-kloecker.de>
tests: Fix generation of keys without expiration.
+ commit e16729edcbdf2c35e3729b6d54c21b9b27250326
* tests/run-genkey.c (parse_expire_string): Support default expiration
and no expiration. Set flag for no expiration.
(main): Allow update of flags when generating new key.
tests: Remove unsupported option --status from usage help.
+ commit e4625885a851112a15636727388f11146be17f15
* tests/run-swdb.c (show_usage): Remove option --status.
qt: Add job to add existing subkeys to other keys.
+ commit 4d913a8aa5dad1327bed5987dada89e9d7c5d292
* lang/qt/src/addexistingsubkeyjob.h,
lang/qt/src/qgpgmeaddexistingsubkeyjob.cpp,
lang/qt/src/qgpgmeaddexistingsubkeyjob.h: New.
* lang/qt/src/protocol.h (class Protocol): Add pure virtual member
function addExistingSubkeyJob.
* lang/qt/src/protocol_p.h (Protocol::addExistingSubkeyJob): Implement.
* lang/qt/src/job.cpp, lang/qt/src/Makefile.am: Update accordingly.
* lang/qt/tests/Makefile.am (the_tests, moc_files, noinst_PROGRAMS):
Add new test.
(t_addexistingsubkey_SOURCES): New.
* lang/qt/tests/t-addexistingsubkey.cpp: New.
* lang/qt/tests/t-support.h (VERIFY_OR_RETURN_VALUE,
COMPARE_OR_RETURN_VALUE, VERIFY_OR_OBJECT, COMPARE_OR_OBJECT,
VERIFY_OR_FALSE, COMPARE_OR_FALSE): New.
* lang/qt/tests/t-support.h, lang/qt/tests/t-support.cpp
(class QQGpgMETest): New member function importSecretKeys.
qt,tests: Add helper to hook up the test passphrase provider.
+ commit d308910cdfb31accae7cf790a956eb2f3cc6ae71
* lang/qt/tests/t-support.h, lang/qt/tests/t-support.cpp
(class QGpgMETest): Add member function hookUpPassphraseProvider.
Add member mPassphraseProvider.
* lang/qt/tests/t-changeexpiryjob.cpp,
lang/qt/tests/t-encrypt.cpp,
lang/qt/tests/t-remarks.cpp,
lang/qt/tests/t-tofuinfo.cpp,
lang/qt/tests/t-trustsignatures.cpp,
lang/qt/tests/t-various.cpp: Use new helper.
qt,tests: Add asyncDone signal to base class of all tests.
+ commit a54402fc2d1c1364843d3c88b5b07dbb7fc007d1
* lang/qt/tests/t-support.h (class QGpgMETest): Add signal asyncDone.
* lang/qt/tests/t-changeexpiryjob.cpp,
lang/qt/tests/t-encrypt.cpp,
lang/qt/tests/t-import.cpp,
lang/qt/tests/t-keylist.cpp,
lang/qt/tests/t-keylocate.cpp,
lang/qt/tests/t-ownertrust.cpp,
lang/qt/tests/t-remarks.cpp,
lang/qt/tests/t-tofuinfo.cpp,
lang/qt/tests/t-trustsignatures.cpp,
lang/qt/tests/t-various.cpp,
lang/qt/tests/t-wkdlookup.cpp,
lang/qt/tests/t-wkspublish.cpp: Remove signal asyncDone from the test
classes.
2022-01-12 Ingo Klöcker <dev@ingo-kloecker.de>
cpp: Add interactor to add existing subkeys to other keys.
+ commit a4dcb17486bb42890ffe6453eeb2c6f301dc1fae
* lang/cpp/src/gpgaddexistingsubkeyeditinteractor.cpp,
lang/cpp/src/gpgaddexistingsubkeyeditinteractor.h: New.
* lang/cpp/src/Makefile.am: Add new files.
2022-01-10 Ingo Klöcker <dev@ingo-kloecker.de>
core: Return an error for secret key export operations.
+ commit a527bd7cf58563d07c89bec458c8967ab1b3e60f
src/export.c (export_status_handler): Handle "export_keys.secret".
2022-01-04 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Add factory function for secret subkey export job.
+ commit 04723a6e96be77dbc43bf71c54e268424a1823ba
* lang/qt/src/protocol.h (class Protocol): Add member function
secretSubkeyExportJob.
* lang/qt/src/protocol_p.h (Protocol::secretSubkeyExportJob): Implement.
* lang/qt/tests/run-exportjob.cpp (showUsageAndExitWithCode): Print
new option.
(createExportJob): Create secret subkey export job if requested.
(main): New option --secret-subkey.
cpp: Allow export of secret subkeys.
+ commit e5c7fc3e022841be8f68fad8b9b64dd601b89ba7
* lang/cpp/src/context.h (enum Context::ExportMode): Add value
ExportSecretSubkey.
(class Context): Add member functions exportSecretSubkeys and
startSecretSubkeyExport.
* lang/cpp/src/context.cpp (Context::exportPublicKeys,
Context::startPublicKeyExport): Return error if ExportSecretSubkey
mode flag is set.
(Context::exportSecretSubkeys, Context::startSecretSubkeyExport):
Implement.
qt: Remove obsolete QGpgMESecretKeyExportJob.
+ commit 88ad37ea96e4645a9e23aac9eae0d8da747559b8
* lang/qt/src/Makefile.am: Remove all occurrences of
qgpgmesecretkeyexportjob.*.
* lang/qt/src/qgpgmesecretkeyexportjob.cpp,
lang/qt/src/qgpgmesecretkeyexportjob.h: Remove.
qt: Use QGpgMEExportJob also for export of secret keys.
+ commit 4e80563fabfdf1d1c136d65252e5353fdd1e9092
* lang/qt/src/protocol.h (Protocol::secretKeyExportJob): Document
charset argument as ignored.
* lang/qt/src/protocol_p.h (Protocol::secretKeyExportJob): Use
QGpgMEExportJob instead of QGpgMESecretKeyExportJob.
* lang/qt/src/qgpgmeexportjob.h (class QGpgMEExportJob): Add c'tor
taking an export mode. Add member m_exportMode. Rename member m_flags to
m_additionalExportModeFlags.
(QGpgMEExportJob::~QGpgMEExportJob): Mark as override.
* lang/qt/src/qgpgmeexportjob.cpp (QGpgMEExportJob::QGpgMEExportJob):
Delegate to new c'tor. Implement new c'tor.
(QGpgMEExportJob::~QGpgMEExportJob): Use default.
(export_qba): Rename argument flags to mode.
(QGpgMEExportJob::start): Pass combination of export mode and additional
mode flags to export_qba.
(QGpgMEExportJob::setExportFlags): Adapt to renaming of member.
* lang/qt/tests/run-exportjob.cpp: New.
cpp: Allow export of secret keys.
+ commit 3da06d1096ee29d70656f07edcabc3bc4351104e
* lang/cpp/src/context.h (class Context): New member functions
exportSecretKeys, startSecretKeyExport, exportKeys, startKeyExport.
(Context::exportPublicKeys, Context::startPublicKeyExport): Rename
argument flags/export_mode to mode.
* lang/cpp/src/context.cpp (Context::exportPublicKeys): Return error if
ExportSecret mode flag is set. Call exportKeys().
(Context::startPublicKeyExport): Return error if
ExportSecret mode flag is set. Call startKeyExport().
(Context::exportSecretKeys, Context::startSecretKeyExport,
Context::exportKeys, Context::startKeyExport): Implement.
cpp: Mark ExportNoUID flag as obsolete.
+ commit 4888191014c24d5954685814e06c9ff0ee38739f
* lang/cpp/src/context.h (enum Context::ExportMode): Mark value
ExportNoUID as obsolete
core: Add new option --secret-subkey to help texts.
+ commit 2752e81f892568a9725fdd8d6a997a1cc80d2f88
* src/gpgme-tool.c (hlp_export): Add new option.
* tests/run-export.c (show_usage): Print new option.
cpp: Remove obsolete workaround.
+ commit fa5f1b57cc12f9305d112f11c2c2d95751ed1a25
* lang/cpp/src/context.cpp (Context::startKeyListing,
Context::exportPublicKeys, Context::startPublicKeyExport): Remove
workaround.
core: New export mode to export secret subkeys.
+ commit 0e19c4879193ed7fa61ad5d488f237b2b5b5d1d7
* src/gpgme.h.in (GPGME_EXPORT_MODE_SECRET_SUBKEY): New.
* src/export.c (check_mode): Allow new mode and check for invalid
combinations.
(export_keys_start): Return error if new mode flag is set.
* src/engine-gpg.c (export_common): Implement.
* src/gpgme-tool.c (cmd_export): New option --secret-subkey.
* tests/run-export.c (main): New option --secret-subkey.
doc: Remove documentation of obsolete export mode flag.
+ commit 414bbdd53c380018621a2a5800e9a9c46869a56e
* doc/gpgme.texi: Remove GPGME_EXPORT_MODE_NOUID.
core: Check for unsupported export mode flags.
+ commit c710af223cc2476d5f4d46c00d8e0521f6c13211
src/engine-gpgsm.c (gpgsm_export, gpgsm_export_ext): Return error if an
unsupported mode flag is set.
core: Check for combination of ssh mode with other mode flags.
+ commit c0581adabe7f5f63c0b96dac449790aa6ac4c291
* src/export.c (check_mode): Return error if ssh mode is combined with
another mode flag.
core: Factor out the check for valid export mode flags.
+ commit 326857511587fa7878757d3884f91bf7eb86771c
* src/export.c (check_mode): New.
(export_start, export_ext_start): Call check_mode.
2021-12-22 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Detect an import error caused by a wrong password.
+ commit 82f43455e9412d8b4792b35371e0b6704a619d07
* lang/qt/src/qgpgmeimportjob.cpp (import_qba): Check import statuses of
import result for bad passphrase errors.
qt,tests: Add test runner for testing the import job.
+ commit f99451e20fd2f84ac653aa6021a475026a9d4dc9
* lang/qt/tests/Makefile.am (run_importjob_SOURCES): New.
(noinst_PROGRAMS): Add run-importjob.
* lang/qt/tests/run-importjob.cpp: New.
cpp: Check fpr of import status for NULL.
+ commit 300776f39165da068757864e9cb3029f06f3be5b
* lang/cpp/src/importresult.cpp (GpgME::ImportResult::Private): Check
fpr for NULL.
core: Detect bad passphrase error on certificate import.
+ commit 305d8668ca724982c50fe4e05315c48a20cc33e5
* src/import.c (gpgme_op_import_result): Check fpr for NULL.
(parse_error): New.
(import_status_handler): Handle error status line.
* doc/gpgme.texi (gpgme_import_status_t): Mention that fpr can be NULL.
* tests/gpg/t-import.c (check_result): Check fpr for NULL.
* tests/run-threaded.c (delete_impres): Check fpr for NULL.
2021-12-22 NIIBE Yutaka <gniibe@fsij.org>
build: Update for newer autoconf.
+ commit 0636e229d7edfcb0a357ffcce62079488be32495
* configure.ac (AC_PREREQ): Require >= 2.69.
(AC_CONFIG_HEADERS): Use it instead of AC_CONFIG_HEADER.
2021-12-15 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Allow specifying an import filter when importing keys.
+ commit 619579bb172579d766956b5d1690d18934fd5986
* lang/qt/src/importjob.cpp (struct ImportJobPrivate): Add member
m_importFilter.
* lang/qt/src/importjob.cpp, lang/qt/src/importjob.h (class ImportJob):
Add member functions setImportFilter and importFilter.
* lang/qt/src/qgpgmeimportjob.cpp (import_qba): Add arg importFilter
and adjust the callers. Set import filter context flag.
* lang/qt/tests/t-import.cpp (ImportTest): Add member function
testImportWithImportFilter.
qt: Avoid test failure when test is run multiple times.
+ commit 3e81a4a336e093d075f83afe3e1bd26493e64cac
* lang/qt/tests/t-import.cpp (ImportTest): Add member tempGpgHome and
member function initTestCase.
(keyFpr, keyData): Move to ImportTest::testImportWithKeyOrigin.
qt: Fix erroneous reuse of JobPrivate objects.
+ commit 3c770013d7233cb0a803251af54c0a2c1fb61e35
* lang/qt/src/job.cpp (Job::~Job): Destroy JobPrivate object belonging
to destroyed job.
2021-12-14 Ingo Klöcker <dev@ingo-kloecker.de>
core: Allow setting import filters when importing keys.
+ commit d35d44efaf72f90ee4f92af8382c4bcb9982da3f
* src/context.h (struct gpgme_context): New field import_filter.
* src/engine-backend.h (struct engine_ops): Add arg import_filter to
field 'import'.
* src/engine-gpg.c (gpg_import): Add arg import_filter and pass option
--import-filter with argument value to gpg. Adjust all callers.
* src/engine-gpgsm.c (gpgsm_import): Add dummy arg import_filter.
* src/gpgme.c (gpgme_release): Free 'import_filter'.
(gpgme_set_ctx_flag, gpgme_get_ctx_flag): New flag "import-filter".
* tests/run-import.c (main): Add option --import-filter.
qt: Add pattern used for WKD lookup to result.
+ commit af820811ec7d0818f988cd728d745cede88ab45f
* lang/qt/src/qgpgmewkdlookupjob.cpp (run_wkd_get): Change type of
arg email.
(lookup_keys): Add pattern to result.
* lang/qt/src/wkdlookupresult.h (class WKDLookupResult): Add arg
pattern to c'tors. Add member function pattern.
* lang/qt/src/wkdlookupresult.cpp (class WKDLookupResult::Private):
Add field pattern.
(WKDLookupResult::WKDLookupResult): Pass pattern to pimpl.
(WKDLookupResult::pattern): New.
* lang/qt/tests/t-wkdlookup.cpp (testWKDLookupAsync, testWKDLookupSync,
testLookupWithNoResultAsync): Check pattern.
core: Set --key-origin option only if supported by gpg.
+ commit fd680254dae58a6bf6fb83688bf7c849257688a4
* src/engine-gpg.c (gpg_import): Do not pass --key-origin option to
gpg if gpg is too old.
qt: Allow setting key origin when importing keys.
+ commit fd6bec617d8fb6ddcbc622a5d8cf94594a7d5520
* lang/qt/src/Makefile.am (qgpgme_sources): Add importjob.cpp.
* lang/qt/src/importjob.cpp: New.
* lang/qt/src/importjob.h (class ImportJob): Add member functions
setKeyOrigin, keyOrigin, keyOriginUrl.
* lang/qt/src/qgpgmeimportjob.cpp (originToString): New.
(import_qba): Set key origin context flag.
(QGpgMEImportJob::start, QGpgMEImportJob::exec): Add options to call
of import_qba.
* lang/qt/tests/Makefile.am (the_tests, moc_files, noinst_PROGRAMS):
Add new test.
(t_import_SOURCES): New.
* lang/qt/tests/t-import.cpp: New.
qt,tests: Skip WKD lookup tests by default.
+ commit 3a43d9dc67970db323c3e49eb964d52c4eb3ac6c
* lang/qt/tests/t-support.cpp, lang/qt/tests/t-support.h
(class QGpgMETest): Add member function doOnlineTests.
* lang/qt/tests/t-wkdlookup.cpp (testWKDLookupAsync, testWKDLookupSync,
testLookupWithNoResultAsync): Skip tests if online tests are not
enabled.
2021-12-13 Ingo Klöcker <dev@ingo-kloecker.de>
core: Allow specifiying a key origin when importing keys.
+ commit 60880adafa93e1a1e8e9fecf03c14d56bbd55345
* src/context.h (struct gpgme_context): New field key_origin.
* src/engine-backend.h (struct engine_ops): Add arg key_origin to
field 'import'.
* src/engine-gpg.c (gpg_import): Add arg key_origin and pass option
--key-origin with argument value to gpg. Adjust all callers.
* src/engine-gpgsm.c (gpgsm_import): Add dummy arg key_origin.
* src/gpgme.c (gpgme_release): Free 'key_origin'.
(gpgme_set_ctx_flag, gpgme_get_ctx_flag): New flag "key-origin".
* tests/run-import.c (main): Add option --key-origin.
* tests/gpg/t-import.c (main): Set and verify key origin.
qt: Support WKD lookup without implicit import.
+ commit ed7e7df2e14feb443e84d87e518ff61b1f7aa6d8
* lang/qt/src/Makefile.am (qgpgme_sources): Add qgpgmewkdlookupjob.cpp,
wkdlookupresult.cpp.
(qgpgme_headers): Add wkdlookupjob.h, wkdlookupresult.h.
(camelcase_headers): Add WKDLookupJob, WKDLookupResult.
(private_qgpgme_headers): Add qgpgmewkdlookupjob.h.
(qgpgme_moc_sources): Add qgpgmewkdlookupjob.moc, wkdlookupjob.moc.
* lang/qt/src/job.cpp: Define c'tor and d'tor of WKDLookupJob.
* lang/qt/src/protocol.h (Protocol::wkdLookupJob): New.
* lang/qt/src/protocol_p.h (Protocol::wkdLookupJob): New.
* lang/qt/src/qgpgmewkdlookupjob.cpp, lang/qt/src/qgpgmewkdlookupjob.h,
lang/qt/src/wkdlookupjob.h, lang/qt/src/wkdlookupresult.cpp,
lang/qt/src/wkdlookupresult.h: New.
* lang/qt/tests/Makefile.am (EXTRA_DIST): Add final.test.
(the_tests): New.
(TESTS): Remove all t-*. Add $(the_tests) and final.test.
(moc_files): Add t-wkdlookup.moc.
(t_wkdlookup_SOURCES): New.
(noinst_PROGRAMS): Add t-wkdlookup.
* lang/qt/tests/final.test: New.
* lang/qt/tests/t-support.h (QTest::toString): New template
specialization for std::string.
* lang/qt/tests/t-wkdlookup.cpp: New.
qt: Fix example for using the asynchronous job API.
+ commit 0e70a2313afbbaaec6859a1edb478587ff82a6b5
* lang/qt/src/protocol.h (class Protocol): Fix API documentation.
2021-12-10 Ingo Klöcker <dev@ingo-kloecker.de>
cpp,tests: Add test runner for doing a WKD lookup without import.
+ commit f3177d3ee0a1d30e15f33ff226b5e4c96b7610db
* lang/cpp/tests/Makefile.am (run_wkdlookup_SOURCES, programs_unix):
New.
(noinst_PROGRAMS): Add $(programs_unix).
* lang/cpp/tests/run-wkdlookup.cpp: New.
cpp: Add new supported components to API docs of dirInfo()
+ commit 5f1ba40116199cd77987c3c2797d600f6df018c2
lang/cpp/src/global.h: Update API doc of dirInfo().
core: Support all components with dirinfo()
+ commit 0ac3679a74505b782388402b3743ee65c271340f
* src/dirinfo.c (WANT_KEYBOXD_NAME, WANT_AGENT_NAME, WANT_SCDAEMON_NAME,
WANT_DIRMNGR_NAME, WANT_PINENTRY_NAME): New.
(dirinfo): Add fields keyboxd_name, agent_name, scdaemon_name,
dirmngr_name, pinentry_name.
(parse_output): Support "keyboxd", "gpg-agent", "scdaemon", "dirmngr",
"pinentry".
(get_gpgconf_item): Return new components.
tests/t-engine-info.c (main): Add new components to the output.
2021-12-07 Ingo Klöcker <dev@ingo-kloecker.de>
cpp: Return engine info for engine used by the context.
+ commit 0eddc867c31dd7239a1a9c4196bf8dc1372ea4b1
lang/cpp/src/context.cpp (Context::engineInfo()): Return engine info
for protocol of context.
cpp: Factor out common code of GpgME::engineInfo() overloads.
+ commit 1a1e9145877a60632346ae3ab68b1ae9d722a867
* lang/cpp/src/context.cpp (get_engine_info, get_static_engine_info):
New.
(GpgME::engineInfo(GpgME::Protocol), GpgME::engineInfo(GpgME::Engine)):
Use get_static_engine_info().
2021-11-25 Werner Koch <wk@gnupg.org>
core: Make the gpgconf option parsing of string types more robust.
+ commit b8b49c11e95fd978a8a2eed23f191d087ab056da
* src/engine-gpgconf.c (gpgconf_parse_option): Skip the string
indicator if it is not the empty string.
tests: Silence libtool warning on Windows.
+ commit 43de18a292b29436783127bd6c275817f0cd86b7
* tests/Makefile.am (AM_LDFLAGS): Use --no-fast-install on Windows.
core: Support dirinfo("socketdir")
+ commit eb37d6469e722ae5ff187962c216474b5ec476de
* src/dirinfo.c (WANT_SOCKETDIR): New.
(dirinfo): Add field socketdir.
(parse_output): Support "socketdir".
(get_gpgconf_item): Return socketdir.
* tests/t-engine-info.c (main): Add socketdir to the output.
* src/w32-util.c (_gpgme_create_process_utf8): Fix indentation.
2021-11-25 NIIBE Yutaka <gniibe@fsij.org>
posix: Use poll instead, when available, removing use of select.
+ commit 8148237cb4ae20755c06a44d71761c7030973c3d
* configure.ac (HAVE_POLL_H): Add the check.
* src/ath.c [!HAVE_POLL_H] (ath_select): Enable conditionally.
* src/posix-io.c [HAVE_POLL_H] (_gpgme_io_select_poll): Use poll.
* tests/gpg/t-cancel.c [HAVE_POLL_H] (do_select): Use poll.
* tests/gpg/t-eventloop.c [HAVE_POLL_H] (do_select): Use poll.
2021-11-12 NIIBE Yutaka <gniibe@fsij.org>
gpgme.pc: Fix library dependency and use of includedir, libdir.
+ commit 4583ab77e5af3f0da5b307a169d07b58dddf652f
* src/gpgme.pc.in (Require): Move gpg-error, libassuan to...
(Requires.private): ... here.
(Cflags): Add -I${includedir}.
(Libs): Add -L${libdir}.
2021-11-12 NIIBE Yutaka <gniibe@fsij.org>
Ben Kibbey <bjk@luxsci.net>
tests: Build using GPG_ERROR_MT_LIBS for thread use.
+ commit 1cedac2bba246ff411843aaef10ca8ea0a0756cf
* tests/gpg/Makefile.am (WITH_THREAD_CPPFLAGS): New.
(WITH_THREAD_LDADD): New.
(t_thread1_CPPFLAGS, t_thread_keylist_CPPFLAGS)
(t_thread_keylist_verify_CPPFLAGS)
(t_cancel_CPPFLAGS): Use WITH_THREAD_CPPFLAGS.
(t_thread1_LDADD, t_thread_keylist_LDADD)
(t_thread_keylist_verify_LDADD)
(t_cancel_LDADD): Use WITH_THREAD_LDADD.
2021-11-11 NIIBE Yutaka <gniibe@fsij.org>
tests: Use GPG_ERROR_MT_LIBS for a test with threads.
+ commit 8cd2fe7b3de4abd2331bcb637b7e2c26ce4faa29
* tests/Makefile.am (run_threaded_CPPFLAGS): New.
(run_threaded_LDADD): Replace GPG_ERROR_LIBS to GPG_ERROR_MT_LIBS.
2021-11-10 NIIBE Yutaka <gniibe@fsij.org>
libtool: Link without -flat_namespace for macOS.
+ commit 50daf3d75d666d34fecc0dbecc31c51a7989eda3
* m4/libtool.m4: Not setting 10.0 to MACOSX_DEPLOYMENT_TARGET when not
defined. Only specify -flat_namespace to linker for specific
(older) versions and hosts.
2021-09-13 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Fix build against Qt 5.9.
+ commit ab9bca09eb869b2013c85fee232f1e62aed925f6
* lang/qt/tests/t-keylist.cpp (KeyListTest::testListAllKeysSync):
Ensure same type for both arguments of QCOMPARE.
* lang/qt/tests/t-various.cpp (TestVarious::testSetExpire):
Ensure same type for both arguments of QCOMPARE.
2021-08-27 Werner Koch <wk@gnupg.org>
build: Fix make distcheck problem.
+ commit aaf448b1e81e7421e539ac2deb9dc9d3d1459016
* tests/start-stop-agent: Use -f with rm. Also use cat instead of cp.
2021-08-27 Andre Heinecke <aheinecke@gnupg.org>
qt: Expect UTF-8 on stderr on Windows.
+ commit 8fe15462829b5049137b3f631564b72c4f63c5e2
* lang/qt/src/threadedjobmixin.cpp (stringFromGpgOutput): Expect
UTF-8.
Add missing files for distribution.
+ commit bc774104bbf461805f875c2bfd2d02aa6dd0945d
* lang/qt/src/Makefile.am (private_qgpgme_headers): Add job_p.h
* tests/gpg/Makefile.am (EXTRA_DIST): Add gpg.conf.in
2021-08-13 NIIBE Yutaka <gniibe@fsij.org>
core: Use flexible array member if compiler has support.
+ commit 3c1c98a43413e429459ca7d3615659f8149534b8
* configure.ac (AC_C_FLEXIBLE_ARRAY_MEMBER): Add.
* src/engine-gpg.c (struct arg_and_data_s): Use FLEXIBLE_ARRAY_MEMBER.
(_add_arg): Use offsetof instead of sizeof.
(add_data): Likewise.
2021-08-03 Ingo Klöcker <dev@ingo-kloecker.de>
core: Fix results returned by gpgme_data_* functions.
+ commit 7cfc93193d535ec5037e48b86544e1b4dbf949f6
src/debug.h (TRACE_SYSRES_OFF_T, _trace_sysres_off_t,
TRACE_SYSRES_SSIZE_T, _trace_sysres_ssize_t): New.
src/data.c (gpgme_data_read, gpgme_data_write, gpgme_data_seek): Use
appropriate new tracing macros instead of casting the results to int.
2021-07-27 Jiri Kucera <sanczes@gmail.com>
core: Support closefrom also for glibc.
+ commit 4b64774b6d13ffa4f59dddf947a97d61bcfa2f2e
* src/posix-io.c (_gpgme_io_spawn): Use glibc's closefrom.
2021-07-08 Ingo Klöcker <dev@ingo-kloecker.de>
core: Ensure gpg.conf for tests is recreated if necessary.
+ commit a5662a801fc11a533fb3b1a69a17e119064972a3
* tests/gpg/gpg.conf.in: New.
* tests/gpg/Makefile.am (gpg.conf): Copy gpg.conf.in instead of using
echo to fill gpg.conf.
Make sure expiration time is interpreted as unsigned number.
+ commit 6a79e90dedc19877ae1c520fed875b57089a5425
* lang/qt/tests/t-various.cpp (testSignKeyWithExpiration): Convert
expiration time to uint_least32_t.
2021-06-29 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Allow retrieving the default value of a config entry.
+ commit 12006a782900687a7f0158a3f931528cfc5ff451
* lang/qt/src/cryptoconfig.cpp, lang/qt/src/cryptoconfig.h
(CryptoConfigEntry::defaultValue): New.
* lang/qt/src/qgpgmenewcryptoconfig.cpp,
lang/qt/src/qgpgmenewcryptoconfig.h
(QGpgMENewCryptoConfigEntry::defaultValue): New.
* lang/qt/tests/t-config.cpp (CryptoConfigTest::testDefault()):
Add test of CryptoConfigEntry::defaultValue(). Port away from deprecated
CryptoConfig::entry overload.
2021-06-28 Ingo Klöcker <dev@ingo-kloecker.de>
Update NEWS.
+ commit d8638ed0aa5bf7f970787155a35d37a4f5d320f8
* NEWS: Add changes of ChangeExpiryJob.
qt: Fix filenames in copyright headers.
+ commit 9d2b876093c25f604d9efe2775143c8f0361916d
* lang/qt/src/qgpgmechangeownertrustjob.h,
lang/qt/tests/t-trustsignatures.cpp: Use correct filenames.
qt: Add test for ChangeExpiryJob.
+ commit 801acd89b234fcd7226f3fb39ec01634460cfa50
* lang/qt/tests/Makefile.am (TESTS, moc_files, noinst_PROGRAMS): Add
new test.
(t_changeexpiryjob_SOURCES): New.
* lang/qt/tests/t-changeexpiryjob.cpp: New.
qt: Allow changing expiration date of primary key and all subkeys.
+ commit 144d580607dd0b70bb20542e2f457153b9cc4ecb
* lang/qt/src/Makefile.am (qgpgme_sources): Add changeexpiryjob.cpp.
* lang/qt/src/changeexpiryjob.cpp: New.
* lang/qt/src/changeexpiryjob.h (enum ChangeExpiryJob::Option,
typedef ChangeExpiryJob::Options, ChangeExpiryJob::setOptions,
ChangeExpiryJob::options): New.
* lang/qt/src/qgpgmechangeexpiryjob.cpp (change_expiry): Update the
expiration date of primary key and/or some/all subkeys.
(QGpgMEChangeExpiryJob::start): Add options to call of change_expiry.
(ChangeExpiryJob::start): Moved implementation to changeexpiryjob.cpp.
qt: Add mechanism for missing d-pointer in Job.
+ commit 3503816570a19352e4b8a81d1cd0f3a9337b8c55
* lang/qt/src/job_p.h: New.
* lang/qt/src/job.cpp (typedef JobPrivateHash, d_func, setJobPrivate,
getJobPrivate): New.
2021-06-26 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Remove superfluous trailing ';'
+ commit ade95b25ce473a3c9ebcb77b7bd76a2fa6ed2805
lang/qt/src/signkeyjob.h (class SignKeyJob): Remove trailing ';' from
inline implemented member functions
core: Fix use-after-free issue in test.
+ commit 81a33ea5e1b86d586b956e893a5b25c4cd41c969
* tests/gpg/t-edit-sign.c (sign_key, verify_key_signature): New.
(main): Factored out signing and verifying the result.
2021-06-24 Werner Koch <wk@gnupg.org>
Release 1.16.0.
+ commit 1021c8645555502d914afffaa3707609809c9459
2021-06-22 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Extend SignKeyJob to create signatures with expiration date.
+ commit ac4536990a4fed4a45a0851260c029e69d0cadf6
* lang/qt/src/signkeyjob.h (SignKeyJob::setExpirationDate): New.
* lang/qt/src/qgpgmesignkeyjob.h, lang/qt/src/qgpgmesignkeyjob.cpp
(QGpgMESignKeyJob::setExpirationDate): New.
* lang/qt/src/qgpgmesignkeyjob.cpp (QGpgMESignKeyJob::Private): Add
member m_expiration.
(sign_key): Handle expiration date.
(QGpgMESignKeyJob::start): Pass expiration date to sign_key.
* lang/qt/tests/t-various.cpp
(TestVarious::testSignKeyWithoutExpiration,
TestVarious::testSignKeyWithExpiration): New.
(TestVarious::initTestCase): Add "allow-weak-key-signatures" to
gpg.conf.
core: Allow specifying an expiration date for key signatures.
+ commit 34d9defc42bacfaf2bb1ce70b2c3f0fdf0a106c3
* src/context.h (struct gpgme_context): Add 'cert_expire'.
* src/engine-gpg.c (append_args_from_cert_expire): New.
(gpg_edit): Set option according to the new flag.
* src/gpgme.c (gpgme_release): Free 'cert_expire'.
(gpgme_set_ctx_flag, gpgme_get_ctx_flag): Add "cert-expire".
* tests/gpg/Makefile.am (c_tests): Add new test.
(gpg.conf): Write "allow-weak-key-signatures" to gpg.conf.
* tests/gpg/t-edit-sign.c: New.
2021-06-21 Ingo Klöcker <dev@ingo-kloecker.de>
Update NEWS.
+ commit ab1d4ef580794a86da754d516db35091f6997e2c
* NEWS: Add news for recent changes
2021-06-18 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Add missing }
+ commit 5340bb7ccfa7086054823fac48d178e6206d66c0
* lang/qt/src/qgpgmenewcryptoconfig.cpp (parseURL): Add missing }.
2021-06-17 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Add some error logging.
+ commit 72de06417e32bd6573acd0b73a72fcf98232fe81
* lang/qt/src/qgpgmenewcryptoconfig.cpp (setURLValueList): Log error
if setting config value failed.
qt: Do not set empty base DN as query of keyserver URL.
+ commit 1dca8c2b3c6d6aa3dfd4215c911207f08a3bf9f1
* lang/qt/src/qgpgmenewcryptoconfig.cpp (parseURL): Only set non-empty
base DN as URL query.
qt: Fix API documentation.
+ commit 0d03f31e07e683efbdb206cc3407bf222d71d8fe
* lang/qt/src/signkeyjob.h (SignKeyJob::start,
SignKeyJob::setUserIDsToSign, SignKeyJob::setCheckLevel): Fix
documentation of parameters.
2021-06-14 Werner Koch <wk@gnupg.org>
core: New data flags "io-buffer-size" and "sensitive".
+ commit fde20940b5ca6986dc12215209e8858601bb0c2e
* src/data.c (_gpgme_data_release): Free buffers.
(gpgme_data_seek): Adjust from renamed fields.
(gpgme_data_set_flag): Implement new flags.
(_gpgme_data_inbound_handler): Allow the use of a malloced buffer.
(_gpgme_data_outbound_handler): Ditto.
* src/data.h (BUFFER_SIZE): Move out of the struct definition.
(struct gpgme_data): Remove pending filed and introduce inbound and
outbound fields.
* src/conversion.c (_gpgme_wipememory): New. Taken from GnuPG.
* src/cJSON.c (wipememory): Use this here too.
* tests/run-decrypt.c (main): Add options "--large-buffers" and
"--sensitive".
core: Also detect AuthEnvelopedData (AEAD for CMS)
+ commit ea290108e4df9f93eda79789d9cde5441d6bdd55
* src/data-identify.c (basic_detection): Add OID.
2021-06-10 Andre Heinecke <aheinecke@gnupg.org>
qt: Flush output after write for QProcess output.
+ commit b3b75c37e2d3ef313031ceba8063feeccb0583ec
* lang/qt/src/dataprovider.cpp (QIODeviceDataProvider::write): Call
waitForBytesWritten.
core,w32: Increase BUFFER_SIZE to 4096.
+ commit ceb8387460b05de5c8cec6e02950176b09c4f38b
* src/data.h (BUFFER_SIZE): Increase to 4096 for Windows.
2021-06-09 Andre Heinecke <aheinecke@gnupg.org>
qt: Explicitly link libgpg-error.
+ commit e6095e54718fe2463fb54adf5879d55e2fba4fef
* lang/qt/src/Makefile.am (libqgpgme_la_LIBADD): Explicitly link
gpg-error.
core: Explicitly add GPG_ERROR_CFLAGS.
+ commit 4041e2c62a10a149776a78e9221de6732693dad9
* src/Makefile.am (AM_CFLAGS): Add GPG_ERROR_CFLAGS
2021-06-02 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Add separate logging category for result of config loading.
+ commit 5bc4e23a57f149c2a7008c1b88ab3d398ce75e9b
* lang/qt/src/qgpgme_debug.h: Make include guard match file name.
* lang/qt/src/qgpgme_debug.h, lang/qt/src/qgpgme_debug.cpp
(QGPGME_CONFIG_LOADING_LOG): New.
* lang/qt/src/qgpgmenewcryptoconfig.cpp
(QGpgMENewCryptoConfig::reloadConfiguration): Use new logging category.
core: Fix a few checks for number of fields in keylist result parser.
+ commit 5512133de4e9bca2defb744e2b42e55b5487d72c
* src/keylist.c (keylist_colon_handler): Check for correct number of
fields.
2021-06-01 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Add support for flags in LDAP server options.
+ commit 27aa7c4a0fc8f7cef6219443cee0d040c2774746
* lang/qt/src/qgpgmenewcryptoconfig.cpp (parseURL): Handle extended
LDAP server option syntax.
(portToString): New.
(splitURL): Append flags to LDAP server option.
2021-05-28 Werner Koch <wk@gnupg.org>
tests: Improve the output of the run-keylist helper.
+ commit 31eb45f01620d3e8811fe18460c281837bb3359f
* tests/run-keylist.c (main): Print all infos from the primary key.
2021-05-27 NIIBE Yutaka <gniibe@fsij.org>
build: _DARWIN_C_SOURCE should be 1.
+ commit 367b9e7488601cdf2cbec4d593a235c89f9a4281
* configure.ac (*-apple-darwin*): Set _DARWIN_C_SOURCE 1.
build: Update gpg-error.m4.
+ commit 792a7e7f04ead7643561439b773e740549340b99
* m4/gpg-error.m4: Update from libgpg-error.
2021-05-12 Werner Koch <wk@gnupg.org>
core: Allow for older compilers.
+ commit aa98081356b5f7c9ef2422021e05aed01a7e4d46
* tests/run-verify.c (main): Remove C99-only syntax.
* tests/run-threaded.c (start_keylistings): Ditto.
core: Make sure to stay ABI compatible.
+ commit 88db69e1a964c9a36989e36fe5d972548432fb5c
* src/gpgme.h.in (struct _gpgme_key_sig): Move trust_scope to the end
of the struct.
2021-05-06 Ingo Klöcker <dev@ingo-kloecker.de>
cpp: Do not close stdout/stderr when destroying EditInteractor.
+ commit 58a217b108e4c4c92306542bf9f2995254809ffb
* lang/cpp/src/editinteractor.cpp (EditInteractor::Private): Initialize
members 'state' and 'debug' in-class. Add member 'debugNeedsClosing'.
(EditInteractor::Private::Private): Remove members initializers.
Remember if 'debug' needs to be closed.
(EditInteractor::Private::~Private): Only close 'debug' if it needs to
be closed.
2021-05-05 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Extend SignKeyJob to create trust signatures.
+ commit f0858e45b0be260730e742643e741547123d4287
* lang/qt/src/signkeyjob.h (SignKeyJob::setTrustSignature): New.
* lang/qt/src/qgpgmesignkeyjob.h, lang/qt/src/qgpgmesignkeyjob.cpp
(QGpgMESignKeyJob::setTrustSignature): New.
* lang/qt/src/qgpgmesignkeyjob.cpp (sign_key): Handle trust signatures.
(QGpgMESignKeyJob::start): Pass trust signature attributes to sign_key.
(QGpgMESignKeyJob::setTrustSignature): New.
qt: Pimpl QGpgMESignKeyJob.
+ commit dae01f8185e0f1bc9c65d93078c7ccda0b79611f
* lang/qt/src/qgpgmesignkeyjob.h: Remove unneeded includes. Include
<memory>.
(QGpgMESignKeyJob): Remove all member variables. Add pimpl pointer.
* lang/qt/src/qgpgmesignkeyjob.cpp: Include <QString>. Don't include
<memory>.
(QGpgMESignKeyJob::Private): New.
(QGpgMESignKeyJob::QGpgMESignKeyJob): Remove initialization of removed
members. Initialize d.
(QGpgMESignKeyJob::start, QGpgMESignKeyJob::setUserIDsToSign,
QGpgMESignKeyJob::setCheckLevel, QGpgMESignKeyJob::setExportable,
QGpgMESignKeyJob::setSigningKey, QGpgMESignKeyJob::setNonRevocable,
QGpgMESignKeyJob::setRemark, QGpgMESignKeyJob::setDupeOk): Adapt to move
of member variables to pimpl.
cpp: Add support for trust signatures to sign key edit interactor.
+ commit a8d7b9d16796efd6f21abaeb43ccaeb2388eb6e4
* lang/cpp/src/gpgsignkeyeditinteractor.h,
lang/cpp/src/gpgsignkeyeditinteractor.cpp
(GpgSignKeyEditInteractor::setTrustSignatureTrust): New.
(GpgSignKeyEditInteractor::setTrustSignatureDepth): New.
(GpgSignKeyEditInteractor::setTrustSignatureScope): New.
* lang/cpp/src/gpgsignkeyeditinteractor.cpp
(GpgSignKeyEditInteractor::Private::Private): Initialize new member.
(makeTable): Add new transition. Fix typos in existing transitions.
(GpgSignKeyEditInteractor::action): Handle SET_TRUST_VALUE,
SET_TRUST_DEPTH, and SET_TRUST_REGEXP.
cpp: Add getters for the attributes of a trust signature.
+ commit e391a08c6f96cd2d93c49b888459ee3f42058118
* lang/cpp/src/key.h (TrustSignatureTrust): New enum.
* lang/cpp/src/key.h, lang/cpp/src/key.cpp
(UserID::Signature::isTrustSignature): New.
(UserID::Signature::trustValue): New.
(UserID::Signature::trustDepth): New.
(UserID::Signature::trustScope): New.
core: Extend gpgme_key_sig_t with trust signature members.
+ commit 276187f6b62a73e92b1c20f589510f80ab9e88d2
* src/gpgme.h.in (struct _gpgme_key_sig): Add fields 'trust_depth',
'trust_value', and 'trust_scope'.
* src/key.c (gpgme_key_unref): Free trust_scope.
* src/keylist.c (keylist_colon_handler): Set the fields.
* tests/run-keylist.c (main): Print the fields.
2021-03-11 Werner Koch <wk@gnupg.org>
doc: Add MIT license notice.
+ commit 3ffd7bd4039d90cd15fbf76f8c116814bffdab7c
* LICENSES: New.
core: New flag GPGME_KEYSIGN_FORCE.
+ commit 0821e2b1495e8944a5a1b5ba20ad5f403dde0dd0
* src/gpgme.h.in (GPGME_KEYSIGN_FORCE): New.
* src/engine-gpg.c (gpg_keysign): Implement.
* tests/run-keysign.c (show_usage): Add option --force
2021-03-05 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Add method for getting config entries for components by entry name.
+ commit fe900a41bf809b263f05d5df21b6ed7fbfb2bbbc
* lang/qt/src/cryptoconfig.h, lang/qt/src/cryptoconfig.cpp
(CryptoConfig::entry): Move implementation to cpp. Add overload not
requiring a group name.
2021-02-01 Werner Koch <wk@gnupg.org>
core: Remove experimental feature GPGME_EXPORT_MODE_NOUID.
+ commit c8fd8870b3bf089f99156448b7d1e59c1150f994
* src/export.c (export_start): Remove GPGME_EXPORT_MODE_NOUID check.
* src/engine-gpg.c (export_common): Ditto.
2021-01-08 Werner Koch <wk@gnupg.org>
Release 1.15.1.
+ commit bb9880778fb16cdb6de83905e45bf6c965770013
Make distcheck make target a bit more reliable.
+ commit 133050b3fa28122a4b60dbbde698fb14379ccf95
* Makefile.am (release): Do not pass --parallel
2021-01-05 Ingo Klöcker <dev@ingo-kloecker.de>
core: Make listing of signatures work if only secret keys are listed.
+ commit 5137d7fc214d0d9dcb947ccdc32fa87979f9a6d0
* src/engine-gpg.c (gpg_keylist_build_options): Add "--with-sig-check"
argument if signatures shall be listed.
* tests/gpg/t-keylist-secret-sig.c: New.
* tests/gpg/Makefile.am (c_tests): Add new test.
2021-01-04 Ingo Klöcker <dev@ingo-kloecker.de>
cpp: Add const-overload of UserID::Signature::operator<
+ commit a6220adf3081c9c848f6d0a6fc3774cb168ccf9c
lang/cpp/src/key.h, lang/cpp/src/key.cpp (UserID::Signature::operator<):
Add const-overload. Deprecate non-const overload.
2021-01-04 Andre Heinecke <aheinecke@gnupg.org>
Qt: Undeprecate QByteArray based start functs.
+ commit 543e2106386f00ebecf7653e7896fa12a6e828ff
* lang/qt/src/encryptjob.h, lang/qt/src/signjob.h (start):
Undeprecate QByteArray based functions.
2020-12-03 NIIBE Yutaka <gniibe@fsij.org>
python: Fix key_export*.
+ commit 7a4fe82a017b751ad756c93d2b9e31d7be045275
* lang/python/src/core.py (key_export): Just raise an error.
(key_export_minimal, key_export_secret): Ditto.
2020-11-24 NIIBE Yutaka <gniibe@fsij.org>
core: Call _gpgme_passphrase_status_handler when exporting keys.
+ commit 53ac732bae46e1f883998e987fc84d4cababde12
* src/export.c (export_status_handler): Call the handler.
2020-11-20 Andre Heinecke <aheinecke@gnupg.org>
Revert "cpp: Use portable off_t size_t"
+ commit a5c4b030258714dd72a2e276114183309cad3ec3
This reverts commit 88294023c196497cfa6737be262c8b0c09d2a3ce.
2020-11-20 NIIBE Yutaka <gniibe@fsij.org>
m4: Update with newer autoconf constructs.
+ commit 4c6fd361593e22092770d120d68a18b4f70e0bb8
* src/gpgme.m4: Replace AC_HELP_STRING to AS_HELP_STRING.
2020-11-18 Andre Heinecke <aheinecke@gnupg.org>
cpp: Use portable off_t size_t.
+ commit 88294023c196497cfa6737be262c8b0c09d2a3ce
* configure.ac: Configure cpp data.h.in
* lang/cpp/src/Makefile.am: Generate data.h
* lang/cpp/src/data.cpp, lang/cpp/src/data.h: Use portable
types.
* lang/qt/src/Makefile.am: Include build dir.
* lang/qt/tests/makefile.am: Include build dir.
2020-11-18 Ingo Klöcker <dev@ingo-kloecker.de>
Daniel Kahn Gillmor
qt: Avoid empty "rem@gnupg.org" signature notations.
+ commit 3c185c2159cdcc23f44773fe1cfb624b27598c80
* lang/qt/src/qgpgmesignkeyjob.cpp (sign_key): Check remark for being
an empty string instead of a null QString.
2020-11-18 NIIBE Yutaka <gniibe@fsij.org>
build: Update with newer autoconf constructs.
+ commit 223779dfdeb7808809372587fa135a8cc2616ce8
* configure.ac: Use AC_USE_SYSTEM_EXTENSIONS instead of AC_GNU_SOURCE.
Use AS_HELP_STRING instead of AC_HELP_STRING.
* m4/libtool.m4: Update from libgpg-error.
* m4/gpg-error.m4: Update from libgpg-error.
* m4/libassuan.m4: Update from libassuan.
2020-11-12 Andre Heinecke <aheinecke@gnupg.org>
qt: Fix export of qDebug GpgME::Error overload.
+ commit df5a89e6929479dc1bf301974fe7d607d024bc1f
* lang/qt/src/debug.cpp: Include debug.h to get the export decl.
2020-11-12 Werner Koch <wk@gnupg.org>
build: Use ~/.gnupg-autogen.sh for the release targets.
+ commit 27abdac25dcd4ba57e073a5de2f057830e623282
* Makefile.am (sign-release): Use global config vars.
Post release updates.
+ commit 01a0d8ec1aa8543dca0986c6dcb5cabc535aae2c
Release 1.15.0.
+ commit feea38c89d4ceb40334f884da9ab07cc4b73e757
* configure.ac: Bump LT versions to c=C35/A24/R0, cpp=C18/A13/R0,
qt=C12/A5/R0.
2020-11-12 NIIBE Yutaka <gniibe@fsij.org>
Louis Dupré Bertoni
core: Support exporting secret keys.
+ commit 3382ecb17eb5d2a373cf2eccb301854fff42f6aa
* src/export.c (export_start): Set command handler for passphrase
interaction for the case when it's secret keys.
(export_ext_start): Likewise.
2020-11-12 NIIBE Yutaka <gniibe@fsij.org>
python: Fix a test for newer GnuPG (>= 2.3).
+ commit 7139afc5cdc0d8203dc75d7c91fa94b704b3d64f
* lang/python/tests/t-quick-subkey-creation.py: Specify RSA.
2020-11-11 Andre Heinecke <aheinecke@gnupg.org>
qt: Add export macro for QDebug operator.
+ commit 81f0dc7293a525af7cfbcb53cce050df718e0f91
* lang/qt/src/debug.h: Add export macro.
2020-11-11 NIIBE Yutaka <gniibe@fsij.org>
qt: Allow build with older GnuPG (< 2.2.18).
+ commit 276f3390e18b34e6211b4c75876a0ab4c10a5ac9
* lang/qt/tests/t-remarks.cpp (initTestCase): Check gpg for
allow-weak-key-signatures option.
2020-11-09 Werner Koch <wk@gnupg.org>
Require at least libgpg-error 1.36.
+ commit eb99e8c483a70764408868602ef322602e9e72ce
* configure.ac (NEED_GPG_ERROR_VERSION): Require 1.36.
* src/cJSON.c: Remove code for older version.
* src/engine.c (gpgme_get_engine_info): Ditto.
* src/gpgme-json.c: Ditto.
* src/op-support.c: Ditto.
* src/util.h: Ditto.
2020-11-04 Ben Kibbey <bjk@luxsci.net>
Parse STATUS_CANCELED_BY_USER.
+ commit 35ca460019ea29ae646d08c954d4d4bf2dc1e8e1
* src/gpgme.h.in (GPGME_STATUS_CANCELED_BY_USER): New.
* src/status-table.c (status_table_s): Add "CANCELED_BY_USER".
* src/passphrase.c (_gpgme_passphrase_status_handler): Return
GPG_ERR_CANCELED during GPGME_STATUS_CANCELED_BY_USER.
2020-11-03 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Make audit parameters of result signal optional.
+ commit 0fee135997438c63ab30891ec7e662093ec57491
lang/qt/src/quickjob.h (QuickJob::result): Make parameters
auditLogAsHtml and audigLogError optional.
cpp: Mark helper functions as static.
+ commit b41f5fec1c42e0113ccbdbb7c258899793631b0a
lang/cpp/src/key.cpp (find_subkey, verify_subkey, find_uid, verify_uid,
find_signature, verify_signature): Mark as static.
cpp: Make signatures belonging to the same user ID sortable.
+ commit 6a6d2a27648490f08aaf0759a533aef08b32070d
lang/cpp/src/key.h, lang/cpp/src/key.cpp (UserID::Signature::operator<):
New.
lang/cpp/src/key.cpp (signature_index): New.
2020-10-29 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Add support for revoke signature quick command.
+ commit f042739d3a2ed23a90441a81782e4c3ac6ffb1c5
* lang/qt/src/quickjob.h (QuickJob::startRevokeSignature): New.
* lang/qt/src/qgpgmequickjob.h, lang/qt/src/qgpgmequickjob.cpp
(QGpgMEQuickJob::startRevokeSignature): New.
* lang/qt/src/qgpgmequickjob.cpp (revokeSignatureWorker): New.
qt: Some minor cleanups.
+ commit 60328c4690beb8a82f5a3cc0d35b434e151c6365
* lang/qt/src/qgpgmequickjob.h: (GpgME::Key, QDateTime, QString):
Remove superfluous forward declarations.
(QGpgMEQuickJob): Remove superfluous second template argument. It is
identical to the default.
(QGpgMEQuickJob::result): Remove. It is already defined in the base
class.
cpp: Add support for gpgme_op_revsig.
+ commit 4166d263e421cb4f98c4ca6bef549613c35e149e
* lang/cpp/src/context.cpp, lang/cpp/src/context.h
(Context::revokeSignature, Context::startRevokeSignature): New.
* lang/cpp/src/context.cpp
(getLFSeparatedListOfStrings, getLFSeparatedListOfUserIds): New.
(getLFSeparatedListOfFingerprintsFromSubkeys): Extracted second part
of function to getLFSeparatedListOfStrings.
core: New function gpgme_op_revsig.
+ commit f3407d0ee4e34ed33be18de5f886a4da2affbf9f
* src/gpgme.h.in (gpgme_op_revsig_start, gpgme_op_revsig): New.
(GPGME_REVSIG_LFSEP): New.
* src/context.h (ctx_op_data_id_t): Add OPDATA_REVSIG.
* src/revsig.c: New.
* src/Makefile.am (main_sources): Add revsig.
* src/libgpgme.vers, src/gpgme.def: Add gpgme_op_revsig and
gpgme_op_revsig_start.
* src/engine.h, src/engine.c: (_gpgme_engine_op_revsig): New.
* src/engine-backend.h (engine_ops): Add 'revsig' and adjust all
engine initializers.
* src/engine-gpg.c (gpg_revsig): New.
(_gpgme_engine_ops_gpg): Set revsig to gpg_revsig.
* doc/gpgme.texi: Document new functions.
* tests/run-keysign.c: Add option --revoke.
2020-10-28 NIIBE Yutaka <gniibe@fsij.org>
python: Handle the when case __doc__ is None.
+ commit 089164a0c0d6024cbb133327d47a28ca3716cd56
* lang/python/src/core.py (GpgmeWrapper): Check if None.
2020-10-23 Ingo Klöcker <dev@ingo-kloecker.de>
cpp: Add support for gpgme_cancel.
+ commit 74c8131d809be49d64f482961fee1e6e0dbe4f4f
* lang/cpp/src/context.cpp, lang/cpp/context.h
(Context::cancelPendingOperationImmediately): New.
* NEWS: Mention added API
Add Assuan transaction that forwards status lines to another object.
+ commit ff23e24063feb9e1628858fd32df37be557072a6
* lang/cpp/src/Makefile.am: Add new files.
* lang/cpp/src/interfaces/statusconsumer.h,
lang/cpp/src/statusconsumerassuantransaction.cpp,
lang/cpp/src/statusconsumerassuantransaction.h: New.
* NEWS: Mention new API.
qt: Add QDebug stream operator for GpgME::Error.
+ commit b21cabb311803677104fa98809bc88b21243f358
* lang/qt/src/Makefile.am: Add new files.
* lang/qt/src/debug.h, lang/qt/src/debug.cpp: New.
* NEWS: Mention it.
cpp, qt: Add missing comparison operators for version info comparison.
+ commit c3406462d11b4241d4feee9be08e0ebe4f2e0bfa
* lang/cpp/src/engineinfo.h (EngineInfo::Version::operator<=,
EngineInfo::Version::operator>=, EngineInfo::Version::operator!=):
New.
* lang/qt/tests/t-various.cpp (TestVarious::testVersion): Add tests for
new comparison operators.
* NEWS: Mention added API
cpp, qt: Fix version info comparison.
+ commit 2f53a2f4be86c0829213e2a9f846b7f8f0b106dc
* lang/cpp/src/engineinfo.h
(EngineInfo::Version::operator>(const Version &)): Fix logic.
(EngineInfo::Version::operator>(const char *)): Use Version-overload of
operator>.
* lang/qt/tests/t-various.cpp: Add test.
2020-10-03 Werner Koch <wk@gnupg.org>
tests: Fix gcc incompatibility.
+ commit 25e2d717f44682f83c483ceba6ba81bad7fc3e97
* tests/json/t-json.c: Remove var definitions inside a for statement.
2020-10-01 NIIBE Yutaka <gniibe@fsij.org>
gpgsm: Fix leaked fd.
+ commit fd904f87f8d43ad477b9d35d834f384e917b26fd
* src/engine-gpgsm.c (gpgsm_new): Close gpgsm->diag_cb.server_fd.
2020-09-09 Werner Koch <wk@gnupg.org>
core: Fully implement the inquire callback for assuan_transact.
+ commit e4ee706e270c38937afe26ce9f54d17d037cb86f
* src/engine-assuan.c (inquire_cb): Implement returning data.
* tests/opassuan/t-command.c (inq_cb): Send some test data.
2020-09-08 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Update the documentation of ListAllKeysJob.
+ commit 973c8116c840b4f1e0c3c80a7956641550c3388d
* lang/qt/src/listallkeysjob.h (ListAllKeysJob::start): Document that
the mergeKeys argument is ignored with gpg >= 2.1.
cpp: Update key with --with-secret instead of updating it twice.
+ commit 3dd7377e120f10576b3b4334b6149f027ceec126
* lang/cpp/src/key.cpp (Key::update): Call Context::key() only once
with KeyListMode::WithSecret.
2020-09-07 Ingo Klöcker <dev@ingo-kloecker.de>
qt: List keys once with --with-secret instead of twice.
+ commit 13bcc6680ac2030d45e4f36a64864bcd6a1d42a9
* lang/qt/src/qgpgmelistallkeysjob.cpp
(do_list_keys): Rename to do_list_keys_legacy and put into unnamed
namespace.
(merge_keys): Put into unnamed namespace.
(list_keys): Rename to list_keys_legacy and put into unnamed namespace.
(do_list_keys, list_keys): New.
* lang/qt/tests/t-keylist.cpp (testListAllKeysSync): New.
cpp: Add keylist mode WithSecret.
+ commit 188cc9e9b553998d2a8ec52bd8282365e22bf400
* lang/cpp/src/global.h (WithSecret): New.
* lang/cpp/src/context.cpp (operator<<): Handle WithSecret.
* lang/cpp/src/util.h (add_to_gpgme_keylist_mode_t,
convert_from_gpgme_keylist_mode_t): Ditto.
cpp: Add missing keylist modes.
+ commit b714a6bbc8038c1b226bc920dd02ce8fbae7da8a
* lang/cpp/src/util.h
(add_to_gpgme_keylist_mode_t): Sort modes as in enum definition and
add missing modes to check.
(convert_from_gpgme_keylist_mode_t): Add missing handling of
GPGME_KEYLIST_MODE_WITH_TOFU and GPGME_KEYLIST_MODE_WITH_KEYGRIP.
2020-09-03 Ingo Klöcker <dev@ingo-kloecker.de>
cpp: Copy some more subkey properties when merging keys.
+ commit 4d87ea2851ae1156cfb1d754cf32b5c9073d4252
* lang/cpp/src/key.cpp (Key::mergeWith): Also merge secret flag and
keygrip
2020-08-28 Werner Koch <wk@gnupg.org>
qt: Fix an rfc2253 parser flaw.
+ commit b088d81cefe45c16409085f1560ad1d4c235a696
* lang/qt/src/dn.cpp (parse_dn_part): Fix parser.
2020-08-14 Ingo Klöcker <dev@ingo-kloecker.de>
core: Add error handling to setexpire.
+ commit f66f856c89b7c02e368afe2343de7cce50e6109e
* src/genkey.c (setexpire, gpgme_op_setexpire_start,
gpgme_op_setexpire): Move to ...
* src/setexpire.c: New.
* src/Makefile.am (main_sources): Add that file.
* src/context.h (ctx_op_data_id_t): Add OPDATA_SETEXPIRE.
* lang/qt/tests/t-various.cpp (testSetExpire): Test error handling.
2020-08-11 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Support changing expiry of subkeys.
+ commit 4f2cd3a0c6a8f3633040ff0e8cca787b2bd61fb2
* lang/qt/src/changeexpiryjob.h (ChangeExpiryJob::start): New overload
that accepts subkeys (with empty implementation).
* lang/qt/src/qgpgmechangeexpiryjob.h,
lang/qt/src/qgpgmechangeexpiryjob.cpp (QGpgMEChangeExpiryJob::start):
New overload that accepts subkeys.
2020-08-10 Ingo Klöcker <dev@ingo-kloecker.de>
cpp: Make private helper a file static.
+ commit c813734c9ce0a77f5a9d463a6b16074e522cc2ce
* lang/cpp/src/context.h, lang/cpp/src/context.cpp
(Context::getLFSeparatedListOfFingerprintsFromSubkeys): Remove
from Context; make it a static function instead
2020-08-06 Andre Heinecke <aheinecke@gnupg.org>
cpp: Use cstdlib getenv for portability.
+ commit 0676d41ef57db4da469aa9b733f8965606b667ec
* lang/cpp/src/editinteractor.cpp (EditInteractor::Private::Private):
Use std::getenv.
2020-08-05 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Port to new setExpire()
+ commit 89501509134ab9cff87219fcaee9c1a758efa2fe
* lang/qt/src/qgpgmechangeexpiryjob.cpp (change_expiry): Use new
setExpire() instead of edit() with GpgSetExpiryTimeEditInteractor
2020-08-04 Ingo Klöcker <dev@ingo-kloecker.de>
qt: Add test for setExpire.
+ commit 84c6b6e2fea1176991bd89ac421af492d4550d6e
* lang/qt/tests/t-various.cpp (TestVarious::testSetExpire): New.
cpp: Add support for gpgme_op_setexpire.
+ commit aa03205fe5e8a8fa2b0feecb8a142aff2a1b25df
* lang/cpp/src/context.cpp
(Context::setExpire, Context::startSetExpire): New.
(Context::getLFSeparatedListOfFingerprintsFromSubkeys):
New helper.
* lang/cpp/src/context.h
(Context::SetExpireFlags): New enum.
(Context::setExpire, Context::startSetExpire): Add
prototypes.
(Context::getLFSeparatedListOfFingerprintsFromSubkeys):
Add as private helper.
cpp: Add ostream operator for subkey.
+ commit 197ba151e70c0aef35ee713b119d49e4637c1d05
* lang/cpp/src/key.cpp (Subkey): Add ostream operator.
* lang/cpp/src/key.h: Update accordingly.
2020-08-04 Ingo Klöcker <dev@ingo-kloecker.de>
Andre Heinecke <aheinecke@gnupg.org>
core: New function gpgme_op_setexpire.
+ commit db82e99a8a40c57a237dad030928d0fcf6b03ad7
* src/gpgme.h.in (gpgme_op_setexpire_start, gpgme_op_setexpire): New.
* src/libgpgme.vers, src/gpgme.def: Add new functions.
* src/genkey.c (setexpire): New.
(gpgme_op_setexpire_start, gpgme_op_setexpire): New.
* src/engine.h, src/engine.c: (_gpgme_engine_op_setexpire): New.
* src/engine-backend.h (engine_ops): Add 'setexpire' and adjust all
engine initializers.
* src/engine-gpg.c (gpg_setexpire): New.
(_gpgme_engine_ops_gpg): Set setexpire to gpg_setexpire.
* doc/gpgme.texi: Document new functions.
* tests/run-genkey.c: Add option --setexpire.
2020-07-16 Werner Koch <wk@gnupg.org>
Release 1.14.0.
+ commit 6d7bf78ca5af35b0860aa20b12f799ab03752190
* configure.ac: Bump LT versions to c=C34/A23/R0 cpp=C17/A11/R0
qt=C11/A4/R0.
2020-07-16 Andre Heinecke <aheinecke@gnupg.org>
qt, cpp: Support export modes.
+ commit 690d967196d9f888e2b7c12d8c77ad752d7e15bf
* lang/cpp/context.cpp, lang/cpp/context.h
(Context::startPublicKeyExport, Context::exportPublicKeys): Extend
with flags paramenter.
(Context::ExportMode): New.
* lang/qt/src/exportjob.h (ExportJob::setExportMode): New.
* lang/qt/src/qgpgmeexportjob.cpp, lang/qt/src/qgpgmeexportjob.h:
Update accordingly.
2020-07-16 Werner Koch <wk@gnupg.org>
core: Also allow GPGME_EXPORT_MODE_SSH for gpgme_op_export.
+ commit dfeedcc28d0406f5ad8ff8ad397e1ef930676535
* src/export.c (export_start): Allow that mode.
core: New export mode to export as OpenSSH public key.
+ commit 7f9e0ca57b29cc96bd1ca717d891c11db7435c5a
* src/gpgme.h.in (GPGME_EXPORT_MODE_SSH): New.
* src/export.c (export_ext_start): Allow for new mode.
* src/engine-gpg.c (export_common): Implement.
* tests/run-export.c (status_cb): New.
(main): New options --status and --ssh.
2020-07-15 Werner Koch <wk@gnupg.org>
core: Deprecate the non-working trustlist functions.
+ commit 858909168298e8c6fb6f9f9009be2ee2d0d9f0ec
* src/gpgme.h.in: Clarify that the trustlist function should not be
used.
* src/engine.c (_gpgme_engine_op_trustlist): Always return an error.
* src/engine-backend.h (struct engine_ops): Remove trustlist member.
* src/engine-gpg.c (gpg_trustlist): Remove.
(struct engine_ops): Remove that member. Also in all other engines.
* tests/gpg/t-trustlist.c: Remove.
* lang/python/tests/t-trustlist.py: Remove.
core: New keylist mode GPGME_KEYLIST_MODE_WITH_KEYGRIP.
+ commit c8048bf8eb988f22b20215197f4739bedafc4264
* src/gpgme.h.in (GPGME_KEYLIST_MODE_WITH_KEYGRIP): New.
* src/gpgme-json.c (op_keylist): New flag "keygrip".
* src/engine-gpg.c (gpg_keylist_build_options): Pass the options.
* lang/cpp/src/global.h (WithKeygrip): New.
* lang/cpp/src/context.cpp: Add check.
* lang/cpp/src/key.cpp (Key::update): Handle WithKeygrip.
* lang/cpp/src/verificationresult.cpp: Ditto.
* lang/cpp/src/util.h (add_to_gpgme_keylist_mode_t): Ditto.
2020-07-14 Werner Koch <wk@gnupg.org>
python: Workaround for a regression in GnuPG 2.2.21.
+ commit 32b80cf3c7d278ddf27117617a3e95e4a12c28c8
* lang/python/tests/support.py (is_gpg_version): New.
* lang/python/tests/t-encrypt-sym.py: Add workaround.
2020-06-09 Andre Heinecke <aheinecke@gnupg.org>
doc: Explain verify_result_t.status == 0 more.
+ commit 88f3202521d422d94bfd79e61bde00707d6f28c9
* doc/gpgme.texi (gpgme_verify_result_t): Explain
GPGME_STATUS_NO_ERROR more clearly.
2020-06-05 Werner Koch <wk@gnupg.org>
core: Fix setting of the chain_model signature result.
+ commit 728ead8ebd426307c6b3f1e3794b3a7ab585eebd
* src/verify.c (parse_trust): Fix detection of "chain" keyword.
2020-05-11 NIIBE Yutaka <gniibe@fsij.org>
tests: Remove/change tests for GnuPG 2.3 with no gpg.keyserver.
+ commit 0cc040e82f9943792a58e73dbc97e20d312858fb
* lang/qt/tests/t-config.cpp (testKeyserver): Remove.
* tests/gpg/t-gpgconf.c (main): Test with dirmngr.keyserver.
2020-05-08 Andre Heinecke <aheinecke@gnupg.org>
w32: Explicitly link ws2_32.
+ commit 52f930c1ed7eee6336a41598c90ef3605b7ed02b
* src/Makefile.am (gpgme_w32_extra_libs): New.
(libgpgme_la_LIBADD, libgpgme_glib_la_LIBADD): Use it.
2020-05-08 dupgit <olivier.delhomme@free.fr>
GPGME_CREATE_NOEXPIRE is only available since 1.9.0.
+ commit 49c13854f3bf49bc0bf18c6ae6bbf9d66b6625c2
* doc/gpgme.texi: Fixes version number from 1.8.0 to
1.9.0 for GPGME_CREATE_NOEXPIRE.
GnuPG-Bug-Id: T4922
2020-05-08 Werner Koch <wk@gnupg.org>
core: Make sure the keygrip is available in WITH_SECRET mode.
+ commit 004fdf61c8b94f646409f4d5855adf8e43b29627
* src/engine-gpg.c (gpg_keylist_build_options): Send --with-keygrip
if --with-secret is used.
2020-05-08 Andre Heinecke <aheinecke@gnupg.org>
tests, json: Do not check for keygrip of pubkeys.
+ commit 5c0d1c7f76c95bad8bce4ad3bafd121ec5101d3c
* tests/json/t-keylist-secret.out.json: Do not check for keygrip
of bravo key.
2020-03-27 NIIBE Yutaka <gniibe@fsij.org>
tests: Add ECC key generation for tests/gpgsm.
+ commit 3658e2df65d321e334a8c96b4d252a4be20354bd
* tests/gpgsm/t-genkey.c (check_result): New.
build: Fix library dependency.
+ commit 71ef398bfd72d505290376d82575eb4f3aece035
* src/Makefile.am (gpgme_tool_LDADD): Add @GPG_ERROR_LIBS@.
2020-03-17 Werner Koch <wk@gnupg.org>
core: New context flags "include-key-block" and "auto-key-import".
+ commit 3afa534645e3826c95e7c70d7ae61ffa2d63acec
* src/gpgme.c (gpgme_set_ctx_flag): Add flags "include-key-block" and
"auto-key-import".
(gpgme_get_ctx_flag): Ditto.
* src/context.h (struct gpgme_context): Add flags include_key_block
and auto_key_import.
* src/engine-gpg.c (struct engine_gpg): Likewise.
(gpg_set_engine_flags): Set the flags for gpg versions >= 2.2.20.
(gpg_decrypt): Set option according to the new flags.
(gpg_encrypt): Ditto.
(gpg_encrypt_sign): Ditto.
(gpg_sign): Ditto.
(gpg_verify): Ditto.
tests/run-verify: Add option --auto-key-import.
tests/run-sign: add option --include-key-block.
2020-03-03 Bernhard Reiter <bernhard@intevation.de>
python: fix minor typo in howto.
+ commit 11edc073a3d2bf72e49827e97349cb364612f300
2020-02-19 Andre Heinecke <aheinecke@gnupg.org>
qt: Change logging category.
+ commit ec9690cf5ce85f43997ac2a3abd3e728012aee4a
* lang/qt/src/*: Change logging category to macro to QGPGME_LOG.
qt: Log execution args of gpg-card.
+ commit ba08aadfa7d254f459f51470a7331c6cc2de5199
* lang/qt/src/qgpgmegpgcardjob.cpp (do_work): Log call.
2020-02-12 Andre Heinecke <aheinecke@gnupg.org>
qt: Add dummy context to make mixin happy.
+ commit 9ca679c15054fbc1cc20e428a6ddf6a67dd0491e
* lang/qt/qgpgmegpgcardjob.cpp (QGpgMEGpgCardJob): Add context.
qt: Add GpgCardJob following the job pattern.
+ commit 77feaa451074741c2d07051915bc23d8b8377242
* lang/qt/src/Makefile.am: Add new files.
* lang/qt/src/job.cpp (GpgCardJob): Add impl stuff.
* lang/qt/src/protocol.h (gpgCardJob): Get one.
* lang/qt/src/qgpgmebackend.cpp,
lang/qt/src/qgpgmebackend.h: Add helpers to get the job.
* lang/qt/src/qgpgmegpgcardjob.cpp,
lang/qt/src/gpgcardjob.h,
lang/qt/src/qgpgmegpgcardjob.h: New.
2020-01-29 Andre Heinecke <aheinecke@gnupg.org>
Do not test for a bug in older GnuPG versions.
+ commit cff600f1f65a2164ab25ff2b039cba008776ce62
* tests/json/t-keylist-secret.out.json
2020-01-24 Daniel Kahn Gillmor <dkg@fifthhorseman.net>
m4/python: Scan for python 3.8 as well.
+ commit 414938cfedbdb97b83d00e8619dec9502096be22
* m4/python.m4: Scan for python 3.8 as well.
2020-01-17 Andre Heinecke <aheinecke@gnupg.org>
core: Add MacOS fallbacks to look for binaries.
+ commit 39052913f2154fa8e9575727e27d4101ef8b6460
* src/posix-util.c (find_executable): New.
(walk_path_str): Factored out from walk_path.
(walk_path): Replaced by find_executable.
(_gpgme_get_gpg_path, _gpgme_get_gpgconf_path): Use find_executable.
2019-12-13 Andre Heinecke <aheinecke@gnupg.org>
cpp, qt: Use uidhash to select uids for signing.
+ commit 194272dbc3e326cc32c1464bc6fda0c0d10b5559
* lang/cpp/src/gpgsignkeyeditinteractor.cpp (action):
Use uidhash instead of number.
(GpgSignKeyEditInteractor::setKey): New.
* lang/cpp/src/gpgsignkeyeditinteractor.h: Update accordingly.
* lang/cpp/src/key.h, lang/cpp/src/key.cpp: Wrap uidhash.
* lang/qt/src/qgpgmesignkeyjob.cpp: Set the key.
2019-12-13 Werner Koch <wk@gnupg.org>
core: Extend gpgme_user_id_t with uidhash member.
+ commit 5eeae535ee0df981d8ae8b758b5bb0d190c7fd89
* src/gpgme.h.in (struct _gpgme_user_id): Add field 'uidhash'.
* src/key.c (gpgme_key_unref): Free it.
* src/keylist.c (keylist_colon_handler): Set it.
* tests/run-keylist.c (main): Print it.
2019-12-11 Andre Heinecke <aheinecke@gnupg.org>
Revert "doc: Remove UI Server documentation"
+ commit 7e7eaf43424556c3c25edc7b67e760ab60de55ce
This reverts commit 1b2ad3b73c37d0583b8e438b4707dca60e26ae7e.
2019-12-06 Daniel Kahn Gillmor <dkg@fifthhorseman.net>
gpg: Avoid error diagnostics with --override-session-key when verifying.
+ commit ae4d7761a15b82eb98b0bcc72af2ae2e8973e1f9
* src/engine-gpg.c (gpg_decrypt): only send --no-keyring when we are
not verifying.
2019-12-04 Daniel Kahn Gillmor <dkg@fifthhorseman.net>
gpgme-tool: Fix help text for INCLUDE_CERTS.
+ commit c0c97dbbe6e08d338ba56abec023bd57287e3239
* src/gpgme-tool.c (hlp_include_certs): added missing newline.
2019-11-27 Werner Koch <wk@gnupg.org>
core,w32: Silence compiler warnings.
+ commit d480a3c8f3a3fff867b84fd8feca9f111ae4adc7
* src/w32-util.c (_gpgme_w32_cancel_synchronous_io): Add some casts.
2019-11-12 Andre Heinecke <aheinecke@gnupg.org>
doc: Remove UI Server documentation.
+ commit 1b2ad3b73c37d0583b8e438b4707dca60e26ae7e
* doc/Makefile.am: Remove uiserver.texi
* doc/gpgme.texi: Remove UI-Server mentions.
* doc/uiserver.texi: Removed.
2019-11-08 NIIBE Yutaka <gniibe@fsij.org>
qt,tests: Take care for old DSA key using deprecated digest algo.
+ commit c49324200734e8ee8524bc096195e24e8aae87cb
* lang/qt/tests/t-remarks.cpp (initTestCase): Supply
allow-weak-key-signatures flag for GnuPG 2.3, which
normally rejects use of SHA1 digest.
2019-11-06 Andre Heinecke <aheinecke@gnupg.org>
qt, tests: Add check for supported versions.
+ commit e7b5c6405da515101f62acce2837e6c0cc115b76
* lang/qt/tests/t-encrypt.cpp (decryptSupported): Moved to
t-support as loopbackSupported.
* lang/qt/tests/t-remarks.cpp: Check for loopbackSupported.
* lang/qt/tests/t-support.cpp, lang/qt/tests/t-support.h
(loopbackSupported): New.
qt, tests: Replace accidentally commited assert.
+ commit 024edbbd3c0059654e13c1c6acf78456450469ab
* lang/qt/test/t-remarks.cpp (testRemarkReplaceSingleUIDExportable):
Use QVERIFY instead of assert.
qt,tests: Add test to add an exportable certify.
+ commit a56f6015e9518180237a70b8abc5ab9804212986
* lang/qt/test/t-remarks.cpp (testRemarkReplaceSingleUIDExportable):
New.
2019-11-06 NIIBE Yutaka <gniibe@fsij.org>
python: Fix how to generate documentation.
+ commit 1b840a151ad7f9680ec5144da5efb0ee6c1dcf1f
* lang/python/doc/Makefile.am: Explicitly write rules to generate rst
and texinfo files.
2019-11-04 Andre Heinecke <aheinecke@gnupg.org>
qt, tests: Add testcase for multiple remarsk.
+ commit 9cf4db1e5271ae1dd6f7ecb11513203cec368bc6
* lang/qt/tests/t-remarks.cpp (testMultipleRemarks): New.
cpp: Add API to obtain mutliple remarks.
+ commit cb7668caeb71429afce1aded9128334182b233e1
* lang/cpp/src/key.cpp, lang/cpp/src/key.h (UserID::remarks): New.
* NEWS: Mention this.
qt,tests: Move remarks test out and extend it.
+ commit db888b1cc05723423a3154fe89e6191812c9c869
* lang/qt/tests/t-various.cpp (testRemarks): Move out.
* lang/qt/tests/t-remarks.cpp: New.
* lang/qt/tests/Makefile.am: Update accordingly.
cpp: Fix dupe_ok state for single uid.
+ commit 08933c183a4c299eb4696092d6d229f607fce985
* lang/cpp/src/gpgsignkeyeditinteractor.cpp (makeTable):
Add transition from command to dupe_ok
2019-11-01 Andre Heinecke <aheinecke@gnupg.org>
qt: Allow adding empty remarks.
+ commit d61491dd25d86a2bee54e4be29b715d97840be67
* lang/qt/src/qgpgmesignkeyjob.cpp (sign_key): Allow empty
remarks.
cpp: Minor optimization in remark lookup.
+ commit 174caaa6f53e1125724a47dad3a5c991298aee6d
* lang/cpp/src/key.cpp (UserID::remark): Use C-API.
cpp: Fix adding duplicated sigs on multiple uids.
+ commit 266e05eee859b83d97079c2fbbd2f1da010fa412
* lang/cpp/src/gpgsignkeyeditinteractor.cpp: Add another
state DUPE_OK2 to allow gpg looping over all uids.
cpp: Add env var to control editinteractor debug.
+ commit a4d5394b4607382d846e8c156439ac182f9945d7
* lang/cpp/src/editinteractor.cpp (EditInteractor::Private::Private):
Read "GPGMEPP_INTERACTOR_DEBUG" env var.
(EditInteractor::Private::~Private): Close debug file.
2019-10-29 Andre Heinecke <aheinecke@gnupg.org>
core: Fix parsing of userid sigs after a subpkg.
+ commit 1242c6c93ac63383f648dd84cff847b86f4925f9
* src/keylist.c (keylist_colon_handler): Do not clear
out the tmp_uid when a subpacket line is encountered.
qt,tests: Add test for remarks.
+ commit 1f3ca698f16465761649d402b999f0e2c9184344
* lang/qt/tests/t-various.cpp (testRemark): New.
qt: Extend signkeyjob to handle remarks and dups.
+ commit 373acd6923f2fc968fb870d2a8a9b49398cb652f
* lang/qt/src/qgpgmesignkeyjob.cpp: Handle remarks and
dupeOK.
* lang/qt/src/signkeyjob.h (SignKeyJob::setDupeOk),
(SignKeyJob::setRemark): New.
cpp: Add support for multiple keysigs in edit.
+ commit 36f7f7a478228a64d3d51a4901a264c8f55f90bb
* lang/cpp/src/gpgsignkeyeditinteractor.cpp
(GpgSignKeyEditInteractor::setDupeOk): New.
(makeTable): Add new tansitions.
(SignKeyState): Add DUPE_OK Status.
(GpgSignKeyEditInteractor::action): Handle DUPE_OK.
(GpgSignKeyEditInteractor::Private::Private): Carry flag.
cpp: Add convenience API to obtain remarks.
+ commit 83ecf1686a9a4e7de3a7b176cf272d9f9f640445
* lang/cpp/src/key.h, lang/cpp/src/key.cpp (UserID::remark): New.
core: Add cert-notation support and extended-edit.
+ commit 0224408c6332648461bdbba562f1a61c947c8ed3
* src/context.h (gpgme_context): Add new flag for extended-edit.
* src/engine-gpg.c (append_args_from_sig_notations): Add flags to
control the kind of notations.
(gpg_edit): Respect extended-edit and notations.
(gpg_encrypt_sign, gpg_sign): Update call to
append_args_from_sig_notations.
* src/gpgme.c (gpgme_set_ctx_flag, gpgme_get_ctx_flag): Support
extended-edit.
* NEWS, doc/gpgme.texi: Mention extended-edit.
2019-10-28 Andre Heinecke <aheinecke@gnupg.org>
core,w32: Initialize dbg_help for socket debugging.
+ commit fe2892618c20cd40c342cce26ffb6ac4644fd3c3
* src/w32-io.c (_gpgme_io_select): Initialize dbg_help.
2019-08-06 NIIBE Yutaka <gniibe@fsij.org>
json: Fix t-decrypt-verify.out for GnuPG >= 2.3.
+ commit b97434fbf087f3176daf39699ff579d38d265317
* tests/json/t-decrypt-verify.out.json: Remove check with key of
04071FB807287134.
2019-07-16 Andre Heinecke <aheinecke@gnupg.org>
core: Fix arg counting in enginge-gpg.
+ commit 6f4a886b30caaac3a30fcf30a7525d656d7e25ce
* src/engine-gpg.c (build_argv): Properly check for all
arguments and allocate memory for them.
2019-07-12 NIIBE Yutaka <gniibe@fsij.org>
python: doc: Remove generated files, put rules in Makefile.
+ commit 36428d8cf153a33faac6a951752cdc76e23f9737
* lang/python/doc/Makefile.am (EXTRA_DIST): Remove files not
distributed like files under meta.
* Add rules to generate .rst and .texi files.
* lang/python/doc/rst: Remove .rst files to be generated.
* lang/python/doc/texinfo: Remove .texi files to be generated.
python: doc: Add suffix for org files.
+ commit d9387650ffb159bbd04db74c4a1dba6f94e83116
2019-06-13 Werner Koch <wk@gnupg.org>
Release 1.13.1.
+ commit ea11c2a13cd44caf0bab395bd5132bf232318ad8
* configure.ac: Bump LT versions to c=C33/A22/R1 cpp=C16/A10/R0
qt=C10/A3/R4.
python: Fix regression in t-decrypt-verify test.
+ commit 7d0a979c07d2a32c1e39a9403f009cbe026f77ff
* lang/python/tests/t-decrypt-verify.py: Comment recent changes.
python: Set a default-key into gpg.conf for the tests.
+ commit ad1395f210f3a3d5839f482f1933eac80a94d174
* lang/python/tests/Makefile.am (gpg.conf): Set a default key.
core: At debug levels up to 9 print only an ascii dump.
+ commit 4f11210b21a1914a1daf67474e9b82084b2cac01
* src/debug.c (_gpgme_debug_buffer): Switch between two output
formats.
2019-06-06 Werner Koch <wk@gnupg.org>
tests: Minor fix to run-threaded.c.
+ commit f6fd90c99aea8b604d76ae49d29bc5269c236a98
* tests/run-threaded.c (random_data_close): Correct FD test.
core: Add commented debug helper to posix-io.c.
+ commit f84abcad253ace782708c05760e52793814896f4
* src/posix-io.c (_gpgme_is_fd_valid): New out-commented function.
core: Fix error return value of _gpgme_run_io_cb.
+ commit 6b9ff1ba391a4364b37cb116748194f3f33b4f12
* src/wait.c (_gpgme_run_io_cb): Fix return code.
2019-06-06 Andre Heinecke <aheinecke@gnupg.org>
tests: Add option "allow-del" to run-threaded.
+ commit e6f28273062ff26344163e219c1b784ae99de980
* tests/run-threaded.c (main): Handle allow-del.
(allow-del): New. Variable to allow deletion of keys.
(import): Delete key after import if allow-del is set.
(delete_impres): Delete keys from an import result.
(delete_fpr): Delete a key by fingerprint.
2019-06-05 Andre Heinecke <aheinecke@gnupg.org>
tests: Implement import in run-threaded.
+ commit 024a7f75d4b8e017b92a13552b23e7fb1d22a5ce
* tests/run-threaded.c (import): New.
(do_data_op): Call it.
2019-06-05 Werner Koch <wk@gnupg.org>
core: Prettify _gpgme_io_select debug output again and fix TRACE_SYSRES.
+ commit 0f68c9f16bdae7295cac4cbf3c9a197840989a85
* src/debug.c (_gpgme_debug): Take better care of NULL userinfo.
(_gpgme_debug_end): Rework.
(_trace_sysres): Print ERRNO and not the supplied RES.
2019-06-05 Andre Heinecke <aheinecke@gnupg.org>
tests: Use synced output for error in run-threaded.
+ commit 3a3648e3a56712261bda4fa866bd2419a740cec8
* tests/run-threaded.c (do_data_op): Use synced out macro.
tests: Avoid variable named the same as a macro.
+ commit 3a11421d0f63b8cb5afa407cd65f763b11033241
* tests/run-threaded.c (decrypt, verify): Don't use a variable name
that is also a macro.
tests,w32: Fix thread creation in run-threaded.
+ commit 9bbe15ebbc41533fa219d5b3017a26a75bc72731
* tests/run-threaded.c (create_thread): Check proper return
value and not return value of CloseHandle.
2019-06-05 Werner Koch <wk@gnupg.org>
core: Improve the debug messages even more.
+ commit 8f9f3224aac78ce9d54e19e73acf7ab659787168
* src/debug.c (_gpgme_debug): Add arg LINE. Chnage all callers.
(_gpgme_debug_begin): Remove.
* src/debug.h (TRACE_SEQ): Use the LINE arg of _gpgme_debug.
core: Avoid explicit locks in the debug code.
+ commit 856d2e8d64f668855b1c22d3d38fe783904c6c48
* src/debug.c (debug_lock): Remove. Also remove all users.
(_gpgme_debug): Use gpgrt_bsprintf to prepare the output and finally
print using standard fprintf. Reformat to prefix to be narrower.
2019-06-04 Werner Koch <wk@gnupg.org>
json: Print "nan", "-inf", "inf" if needed.
+ commit f56c996318dfa1c9f0d10582b18c2fce10d24668
* src/cJSON.c (print_number): Print NaN and INF.
json: Improve handling of large exponents in the JSON parsor.
+ commit fabe96126b4ed9c5e07b713813d7db26a02e5e5f
* src/cJSON.c: Include stdint.h.
(parse_number): Avoid overflob in SUBSCALE and cap integer values.
core: Implement recpstring option parsing for gpgsm.
+ commit 1024884e07f750ce781fa74dffa62e126bdda622
* src/engine-gpg.c (append_args_from_recipients_string): Detect bad
options.
* src/engine-gpgsm.c (set_recipients_from_string): Implement option
parsing.
core: Make gpgme_op_encrypt_ext work for CMS.
+ commit e9ca36f876e1066227668981f5a9e1a7f1031d9e
* src/engine-gpgsm.c (gpgsm_encrypt): Fix argument check.
2019-06-04 NIIBE Yutaka <gniibe@fsij.org>
python: Fix typo in DecryptionError exception.
+ commit 47135ffdb923de66bc275a37e31811ad22c73dd7
* lang/python/src/errors.py (DecryptionError): Rename from
DeryptionError.
(UnsupportedAlgorithm): Use DecryptionError.
2019-06-03 Andre Heinecke <aheinecke@gnupg.org>
Add NEWS for 1.13.1.
+ commit 49883023f661a18d73f9f2c7a3a98902af62ef6b
* NEWS: Add news for 1.13.1
2019-05-06 Andre Heinecke <aheinecke@gnupg.org>
python: Make EXTRA_DIST files explicit.
+ commit f9c923bb2d87711235312e8085964372d7480ce4
* configure.ac: Configure new Makefiles.
* lang/python/Makefile.am: Remove dirs from extra dist and use
subdirs.
* lang/python/examples/Makefile.am, lang/python/src/Makefile.am,
lang/python/doc/Makefile.am: New. Files that list EXTRA_DIST files.
Python, doc: Minor style improvement.
+ commit 63055f13407760c877e5a3a94e564dfb3077dd47
* lang/python/src/core.py (Context): Retab and shorten
max line length.
Merge remote-tracking branch 'origin/dkg/fix-T4276'
+ commit f303806a110a9813023a5fd9468a55ab0f7fb39d
2019-05-03 Andre Heinecke <aheinecke@gnupg.org>
Always use maintainer mode -Wno cflags.
+ commit 33b13d1c290d7ce35c636cce4265b512fb8e64c3
* configure.ac (CFLAGS): Move -Wno flags out of the maintainer mode.
cpp: Fix initialization warning.
+ commit 0ed81498147723f0e9282df5ae08b8b8e40edd2f
* lanc/cpp/src/gpggencardkeyinteractor.cpp
(GpgGenCardKeyInteractor::Private): Fix initialization warning.
2019-05-03 Daniel Kahn Gillmor <dkg@fifthhorseman.net>
python: stop raising BadSignatures from decrypt(verify=True)
+ commit 4100794e305ba22241ea5a4f7b42bb5189fbd948
* src/core.py (decrypt): filter out signatures with errors from the
returned verify_result, but avoid raising BadSignatures
* tests/t-decrypt-verify.py: ensure that only a single signature is
returned when evaluating cipher-3.asc, since the other signature is
unknown.
python/tests: try to decrypt and verify new test data.
+ commit bd2d282e572b5d02669238c9e087259b85638477
* lang/python/tests/t-decrypt.py: test decryption of cipher-3.asc and
cipher-no-sig.asc
* lang/python/tests/t-decrypt-verify.py: test decryption and
verification of cipher-3.asc and cipher-no-sig.asc
tests: add two new types of encrypted data.
+ commit c5c3a9d10be415ea7bc0cd9730ad6085f16ee7a0
* tests/gpg/cipher-3.asc: add an encrypted file containing signatures
(one from a known key, and one from an unknown key)
* tests/gpg/cipher-no-sig.asc: add an encrypted file containing no
signatures at all
python: make it easier to run a limited number of tests.
+ commit 30bd1c097544376f257d426d5feb4706fb5d3afd
* lang/python/tests/Makefile.am: prefer py_tests from the environment
if present.
2019-05-02 Andre Heinecke <aheinecke@gnupg.org>
tests: Add cms mode to run-import.
+ commit 4746c5c9e2dd9a3ee471a429c19bc1f7fd1d07db
* tests/run-import.c (show_usage): Add doc for cms / openpgp.
(main): Handle protocol.
2019-04-24 Andre Heinecke <aheinecke@gnupg.org>
cpp: Add wrapper for gpgme_set_global_flag.
+ commit 7981ec4147f3058d5b56905903456247993dc6f7
* lang/cpp/src/context.cpp (setGlobalFlag): New.
* lang/cpp/src/global.h (setGlobalFlag): Export it.
2019-04-19 NIIBE Yutaka <gniibe@fsij.org>
core: Fix duplication of close_notify_handler for gpgsm.
+ commit 7673ef7953482f42cab50dca1810e5c9d10f461e
* src/engine-gpgsm.c [!USE_DESCRIPTOR_PASSING] (gpgsm_new): Remove
last call to _gpgme_io_set_close_notify.
core: Fix error return.
+ commit 814f6c8de8006830f19a029a879bd92f9e584789
* src/engine.c (_gpgme_set_engine_info): Add error return.
2019-04-09 Andre Heinecke <aheinecke@gnupg.org>
core,w32: Fix minor potential memleak.
+ commit 140d694e1fddf16fa3fd2371b9a852ebb14622c8
* src/w32-util.c (_gpgme_create_process_utf8): Free converted
startup info strings.
core,w32: Fix new w32-util functions.
+ commit ecbba12b869106ba03e10b7b7dd80f74d086831b
* src/w32-util.c (_gpgme_access): Respect mode parameter.
(_gpgme_create_process_utf8): Convert startupinfo, too.
core,w32: Improve handling of Unicode paths.
+ commit a82e3a0ae57a48ba173e282a050680751006c074
* src/dirinfo.c (get_gpgconf_item): Use _gpgme_access.
* src/posix-util.c (_gpgme_access): Add forward to normal access.
* src/sys-util.h (_gpgme_access): New for posix and w32.
* src/w32-io.c (_gpgme_io_spawn): Use _gpgme_crate_process_utf8.
* src/w32-util.c (utf8_to_wchar, utf8_to_wchar0): The usual w32 conv.
(find_program_in_dir): Use _gpgme_access.
(find_program_at_standard_place): Use wchar API and convert to UTF-8.
(_gpgme_access): Convert UTF-8 to wchar and use wchar API.
(_gpgme_create_process_utf8): Convert UTF-8 to wchar and use wchar API.
core,w32: Show w32-spawn warning only once.
+ commit 937adfdcbb22f715c5a331e5e2d4546ac15a1b7e
* src/w32-io.c (_gpgme_io_spawn): Show MessageBox only once.
2019-03-27 Andre Heinecke <aheinecke@gnupg.org>
core, w32: Fix format string errors on windows.
+ commit 4a4680f8901ecdcb7e8d5ed55f48226ccfccd7c8
* src/debug.c (_gpgme_debug): Use gpgrt_vasprintf instead of
vfprintf to have a more portable format.
core: Fix assuan logger-fd hack for windows.
+ commit 19a4c4daa2cfd075b181d5131a4b8b4d54714b8c
* src/assuan-support.c (my_spawn): Zero is a perfectly fine fd.
2019-03-26 Andre Heinecke <aheinecke@gnupg.org>
core,w32,glib: Fix build of w32-glib-io.c.
+ commit 213c4bc1eb1f45695cc3955cc722ebb363dcbdd0
* src/w32-glib-io.c (_gpgme_io_pipe, _gpgme_io_connect): Do not
use TRACE_SUC in a return statement.
2019-03-26 Werner Koch <wk@gnupg.org>
Release GPGME 1.13.0.
+ commit 1b5a6bf27ac9b2e5a1fc4d5e879bd4901fcad5bb
* configure.ac: Bump LT versions.
For C to C33/A22/R0.
For C++ to C15/A9/R0.
For Qt to C10/A3/R3.
2019-03-26 Andre Heinecke <aheinecke@gnupg.org>
core: Fix a strtoul to strtol.
+ commit 10576dc427b3746e2c3b9bc40efe618a3bd40519
* src/assuan-support.c (my_spawn): Fix using strtoul for
a long.
cpp: Fix GenCardKeyInteractor and extend it.
+ commit ffdb75217bc09561cf651dab15cd26e0024d89a7
* NEWS: Mention interface change.
* lang/cpp/src/gpggencardkeyinteractor.cpp
(GpgGenCardKeyInteractor::setAlgo): New.
(GpgGenCardKeyInteractor::action),
(GpgGenCardKeyInteractor::nextState: Handle new interface.
2019-03-25 Andre Heinecke <aheinecke@gnupg.org>
core, w32: Add hack to translate diag logger-fd.
+ commit 129def87b262241483ba3a8b6771ad6d07c2e3be
* src/assuan-support.c (my_spawn): Add hack to
mark the logger fd for w32spawn translation.
2019-03-20 Andre Heinecke <aheinecke@gnupg.org>
qt: Handle diagnostic audit log for CMS.
+ commit 47369569e23482bdd24a136b071192352b1d1347
* lang/qt/src/threadedjobmixin.cpp(_detail::audit_log_as_html):
Handle CMS audit log.
2019-03-19 Werner Koch <wk@gnupg.org>
Andre Heinecke <aheinecke@gnupg.org>
core: Support GPGME_AUDITLOG_DIAG for gpgsm.
+ commit dd21ec997cf4b6ba18538c63c728478110ad1f60
* src/engine-gpgsm.c (struct engine_gpgsm): Add fields diag_cb and
diagnostics.
(close_notify_handler): Close the diag fd on status fd close.
Handle diag close.
(gpgsm_cancel): Handle diag.
(gpgsm_release): Free DIAGNOSTICS.
(gpgsm_new): Support the diag feature.
(start): Set a handler for the diag fd.
(gpgsm_getauditlog): Support GPGME_AUDITLOG_DIAG.
2019-03-13 Andre Heinecke <aheinecke@gnupg.org>
cpp: Fix Error::hasSystemError.
+ commit c4cc47ee8f0bedc58e58ab416689d7014b0df2e7
* lang/cpp/src/context.cpp (Error::hasSystemError): Invert logic to
do what it says.
2019-02-28 Werner Koch <wk@gnupg.org>
json: Fix cosmetic error in the repl.
+ commit 1bdab961c51fc038c33ae8116595aa0213ab1dd5
* src/gpgme-json.c (native_messaging_repl): Use correct var with sizeof.
tests: Let run-verify print the de-vs flag.
+ commit b159b2eddd9df5df6cc8f29bd999cf1603c56991
* tests/run-verify.c (print_result): Chack is_de_vs.
* tests/run-import.c (main): Fix bad parameter for format string.
2019-02-27 Andre Heinecke <aheinecke@gnupg.org>
json: Limit recursion depth.
+ commit 4a117859e7a512458ab78cfedfae0372805196b1
* src/cJSON.c (MAX_DEPTH): New. Maximum recursion depth.
(parse_value, parse_array, parse_object): Carry and check
depth argument.
(cJSON_ParseWithOpts): Initialize depth.
2019-02-21 Andre Heinecke <aheinecke@gnupg.org>
cpp: Add ostream operators for import result.
+ commit 73b2f40ae5e6881991dea609b0781373b28d7d30
* lang/cpp/src/importresult.cpp: Add ostream operators.
* lang/cpp/src/importresult.h: Update accordingly.
cpp: Make GpgME::Data::toKeys really const.
+ commit 6175025c822678102c3f089e37952aa84b19a3ec
* lang/cpp/src/data.cpp (GpgME::Data::toKeys): Rewind afterards.
2019-02-19 Werner Koch <wk@gnupg.org>
core,w32: Fix missing sentinel in dir name builder.
+ commit 4c49417cc0dbd7f34269aff00fccafba150af744
* src/w32-util.c (_gpgme_get_gpgconf_path): Add NULL top strconcat.
2019-02-11 Andre Heinecke <aheinecke@gnupg.org>
tests: Fix memleak in run-threaded.
+ commit f8312d7c333193582dcb5816198219b9564023f0
* tests/run-threaded.c (verify): Free msg.
2019-02-10 Ben McGinnes <ben@adversary.org>
python: examples.
+ commit 302d5ef52e095378231efd54677b5c315354ad78
* A rather obvious variant of the existing key import examples, except
directed at Mailvelope's keyserver.
* Yeah, Werner, I know ... but it exists because I used it and there's
no harm in sharing.
2019-01-30 Ben McGinnes <ben@adversary.org>
python: docs.
+ commit e005052f4d5b29beda2252f8042dbf5728f5e2aa
* Version bump in preparation for whenever GPGME 1.13.0 happens.
* Ran the post_installer.py for docs preparation again.
2019-01-27 Ben McGinnes <ben@adversary.org>
python: post installer script.
+ commit 2de1e599770cdb129b84302d963f65fdd3ddd2a4
* Removed auto-generated .texi files from doc/src/ so only the
corrected versions are left.
* Which means now it is complete, but with the initial work to expand
it with info file generation later.
python: post installer docs fix script.
+ commit 1e265723653042bc1010b457537b69a2011b43b7
* Moved post_installer.py into the examples/howto/ directory.
* Added instructions for its use to the Python Bindings HOWTO.
* Ran it as intended from the lang/python/ directory in order to both
prove it works and quickly and easily get the updated howto
replicated. Also to fix all those .texi files.
2019-01-25 Werner Koch <wk@gnupg.org>
json: Better use gpgme_free.
+ commit ed81892917f47dddc23aa99d88733e3f8f344256
* src/gpgme-json.c (subkey_to_json): here
json: Fix minor memory leaks.
+ commit 7f2423371964263784252cf839269023b6573bd2
* src/gpgme-json.c (interactive_repl): Fix memleak.
(subkey_to_json): Ditto
(op_config): Delay init of j_comps to avoid a leak on error.
2019-01-16 NIIBE Yutaka <gniibe@fsij.org>
build: With LD_LIBRARY_PATH defined, use --disable-new-dtags.
+ commit 66bcb8acb2452cf19318023ed0ff1ea7d7bb8439
* configure.ac (LDADD_FOR_TESTS_KLUDGE): New for --disable-new-dtags.
* tests/Makefile.am (LDADD): Use LDADD_FOR_TESTS_KLUDGE.
* lang/cpp/tests/Makefile.am, lang/qt/tests/Makefile.am: Likewise.
* tests/gpg/Makefile.am, tests/gpgsm/Makefile.am: Likewise.
* tests/json/Makefile.am, tests/opassuan/Makefile.am: Likewise.
2019-01-15 Andre Heinecke <aheinecke@gnupg.org>
tests: Add diagnostic example to run-import.c.
+ commit ce327f994a2888b807b63cf202ddcecc3fb9c685
* tests/run-import.c (main): Show diagnostics in verbose mode.
2019-01-09 Andre Heinecke <aheinecke@gnupg.org>
qt: Use tofu conflict test keys without expiry.
+ commit 66376f3e206a1aa791d712fb8577bb3490268f60
* lang/qt/tests/t-tofuinfo.cpp: Use new test keys without
expiry.
2019-01-02 Ben McGinnes <ben@adversary.org>
python docs: post installer.
+ commit a0dbdfebbb60f0d34dd16894803e95221d8be668
* Merging post installer script.
* Included ammended Sphinx config file to try to reduce the
auto-generated EPUB validation failures it produces.
python: post installer doc fix script.
+ commit a2e7c863c821ca035f1e3f8077bdae3b0f81f5eb
* Got rid of the bash bit in the comments.
* Made the final printed instructions far more obvious.
python: examples.
+ commit 207d4289d84971d11ec1824fbe7d4a2be63b56e4
* Fixed inter-edit.py so it will actually work now.
* made 3 others executable.
* Fixed the semantics of assuan.py's instructions.
2018-12-26 Ben McGinnes <ben@adversary.org>
python: examples.
+ commit d406471d4bf9c79140e4bc91de7d316ec7465892
* Fixed inter-edit.py so it will actually work now.
* made 3 others executable.
* Fixed the semantics of assuan.py's instructions.
2018-12-24 Ben McGinnes <ben@adversary.org>
python: docs processing.
+ commit ef9355c2fe8f81ccd73e0ed45ce33e925928f8e1
* Added some EPUB specific config options to the Sphinx config file
which might help reduce some of Sphinx's more stupid default errors
with EPUB validation.
* Added lang/python/post_installer.py script for automating the
generation of .texi and .rst "source" files from the real source
files written in Org mode. Includes recreating the Sphinx Makefile
which is excluded due to the m4 toolchain in parent directories, it
also handles the rewriting of the reST index file properly and
rewrites the .texi files so they don't impale themselves on Unicode.
2018-12-21 Ben McGinnes <ben@adversary.org>
python: docs.
+ commit 06bca0eaa8de8405fafc892ab7864990f8853bcf
* Found a bug in org-mode's export to texinfo function which will
require either manual modification of each file or a customs sed run
over the generated files for all updates.
* Manually updated the current files for now, but will need to add
some post-install processing scripts for future use (I already have
some of these for my specific setup, they just need to be made a
little more generic and platform independent for here).
python: groups example.
+ commit dc5f416351e47bfafb46a53f8fd8435dd6c231ba
* Tightened code a little more.
2018-12-17 Ben McGinnes <ben@adversary.org>
python docs: house keeping.
+ commit daded4925489d306f6a65271c2f55101b331187c
* Dropped the ASCII copyright line, since even MS have conceded their
battle against Unicode enough to load UTF-8.
* Fixed the drafts section since there will be less need of multiple
output format testing from next year.
2018-12-17 Werner Koch <wk@gnupg.org>
core: Silence newer compiler warnings.
+ commit 8b41fb08f00f01fe0dd8b2b5455d3422d97ddc60
* configure.ac: Add -Wno-format-truncation and
-Wno-sizeof-pointer-div.
* src/b64dec.c (_gpgme_b64dec_proc): Add fallthrough annotation.
* src/cJSON.c (parse_string): Ditto.
* src/gpgme-json.c (main): Ditto.
2018-12-16 Ben McGinnes <ben@adversary.org>
python: howto and examples.
+ commit fbc298dc1b0fbb51ebc92a9d56c45b78c5e9989d
* Tightening up both the documentation and some of the example code.
2018-12-13 Ben McGinnes <ben@adversary.org>
python: examples bugfix.
+ commit 4308d172816f3172454fac1dc0771014056764a1
* Fixed a bug in the ProtonMail importers (pmkey-*.py) where multiple
keys found for a username would always result in the last email
address checked being returned in the printed output for all located
keys.
2018-12-12 Ben McGinnes <ben@adversary.org>
python: new example script.
+ commit 3849b60e22432ef33f0d1d39b88e07922ad7779e
* Though Keybase really should not be encouraged due to
disengenuosness and FUD emanating from that souce, this new script
will obtain a key hosted on that site and import it when supplied
with the keybase username.
python: what's new summary.
+ commit 3ca7cf07f5d3ec4af89e69ed13ea7ab701e33c03
* Added a little more detail to the what's new section.
python: advanced howto example.
+ commit 64758a0dac4c7c3b312dccbc1661813e2c3e2888
* Added Cython requirement to this advanced use case.
python: howto examples equirements.
+ commit 4c324ac1beb710714262af0040dea21232ba87d9
* Added small requirements.txt file for additional modules not in the
standard python library and not including the bindings themselves
and not including Cython, which is for more advanced examples.
2018-12-10 Ben McGinnes <ben@adversary.org>
python: hkp key importer.
+ commit 772b5aae24a2a3a996f399024845de612192fc2f
* Tweaked it slightly to avoid repetition of key searches when there
is only one search pattern to check (i.e. usually a single key ID or
fingerprint).
python: HKP search and import updates.
+ commit 2e7a14c9b369096775a035091c197f2d438142a0
* Tweaked the code again so that it can also handle the cases where
someone has included a hexadecimal string in their user ID.
* Updated the HOWTO to match.
* Exported to .rst and .texi.
python: key import via HKP example.
+ commit fe7e01d164b64ad5e7f65cb80e4bf13f06d8d3ef
* Fixed the logic used to search for any given pattern.
* Added a sensible method of checking whether a pattern is a key ID or
fingerprint.
python: docs updates.
+ commit 7c63bfe4ab434b61a871aec4bc1d0a05b4c068e6
* Multiple updates, expanding on the Windows installation issues.
* Also adding to the new maintenance mode reference document.
* Includes content relating to the resolution of T4271 and T4191.
2018-12-07 Andre Heinecke <aheinecke@intevation.de>
core: Fix ERR_INV_ARG check in genkey_start.
+ commit 78f6291a3bf56769f53af66fe39718ddd2d74bf2
* src/genkey.c (gpgme_op_genkey_start): Fix check for
parms.
2018-12-05 Ben McGinnes <ben@adversary.org>
python: examples.
+ commit dc5600d306f808767068bad5117232fc3d35ac43
* cut some of then poor len usage.
2018-12-05 Daniel Kahn Gillmor <dkg@fifthhorseman.net>
python: overhaul logic of Context.decrypt()
+ commit 65c28da4e49a8778607fdcf6f51a840166616d9f
* lang/python/src/core.py (Context.decrypt): simplify and clarify the
logic behind handling verify=False.
* lang/python/tests/t-decrypt.py: ensure that we test verify=False
python: ctx.decrypt() has problematic error handling.
+ commit 878a0ad01265dba5b06429276bdcc5c21fedb6f5
* lang/python/src/core.py (Context.decrypt): document odd
error-handling behavior as a potential problem to be addressed.
python: Clarify the meaning of ctx.decrypt(verify=[])
+ commit 5d8b4f74891af22379899ccee9e8ee849144eee3
* lang/python/src/core.py (Context.decrypt): docstring clarification
of what it means to pass an empty list to the verify argument.
python: gpg.Context.decrypt verify_sigs and sink_result are bools.
+ commit b8fa76a30c02afc3d7f6aad0a59bb613d1b711fc
Both of these function-internal variables are never used for anything
other than a binary state. Implement them as the booleans they are.
Otherwise, casual readers of the code might think that they're
supposed to represent something other than a flag (e.g. "verify_sigs"
could mean "the signatures to verify", and "sink_result" could mean
"the place where we sink the result").
Signed-Off-By: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
python: clarify documentation for verify argument for Context.decrypt()
+ commit 49af6d76e55f348c7b3cece756d6ac643d17ee68
It's easy to miss that verify can take a list of keys. Make it more
obvious to the average python dev who reads docstrings.
python: simplify Context.decrypt()
+ commit 2491e6f92f5b562cbd6f7f931df630cb106f6688
In the course of trying to address https://dev.gnupg.org/T4271, i
discovered that gpg.Context.decrypt() has a bit of superfluous code.
This changeset is intended to simplify the code without making any
functional changes.
2018-12-05 Ben McGinnes <ben@adversary.org>
python: windows c and cython.
+ commit 1dffdcc6e9d249111eb8761d29ef3b35b32a8c3d
* added warning that he Windows C runtime issues will also affect use
with Cython and that relying on binary installers would remove that
possible use case.
2018-12-04 Ben McGinnes <ben@adversary.org>
python: sphinx modification.
+ commit c8a04af676d981b42172c9bdad82eb83f91c8ce6
* The make.bat file incorrectly triggers the trailing whitespace check
in the git repo (it doesn't actually have any trailing whitespace,
but triggers the error on every line).
* Will need to add a script to handle future org-mode conversions of
the index page anyway, so will get that script to deal with this
problem too by generating the make.bat file if the platform is
detected as Windows.
python: Sphinx support.
+ commit 6d8823b81162c18406d40ec59bd252cfdf1df648
* Added framework from sphinx-quickstart to lang/python/doc/rst/ so
that Python developers already using Sphinx can use the generated
reST files with existing documentation systems.
* Note that when generating source files from Org-mode, the index page
will require manual intervention to match the Sphinx requirements.
python: docs update.
+ commit 8613727f1ee985c3cfa2c815523312914f033ffd
* Expanded the section on issues with Windows installations, with
greater detail of which versions of Visual Studio are needed
depending on which version of CPython is to be used.
* Included a recommendation which is a bit harsh without being totally
prickish.
* Updated all files to not link to author's key or related data in
order to make them all consistent with the changes in commit
649b19688132dd315e361c0f5b63ba6d8f45996d.
2018-12-04 NIIBE Yutaka <gniibe@fsij.org>
build: Remove --with-*-prefix, which is no need any more.
+ commit 5dbac555f23bcec4adcfd82de61878f0f23ff272
* autogen.rc (configure_opts): Remove --with-*-prefix.
2018-12-03 Andre Heinecke <aheinecke@intevation.de>
qt,cpp: Consistently use nullptr and override.
+ commit 1d31420650bfa7ca1d1503cc7431b3360e86022c
* lang/cpp/src/Makefile.am, lang/qt/src/Makefile.am (AM_CPPFLAGS):
Add suggest-override and zero-as-null-pointer-constant warnings.
* lang/cpp/src/*, lang/qt/src/*: Consistenly use nullptr and override.
2018-11-30 Ben McGinnes <ben@adversary.org>
python: documentation fixes.
+ commit 2e3a681d0c35bbf6db584fedc9d7f0a010430b51
* Typographic and whitespace error correction pertaining to the
previous update.
python: documentation.
+ commit 3b056a01a252bb72df5744409ba494e1a6e54d31
* Added long description to setup.py.in.
* Added maintenance mode details with clarification for what type of
things would be a bug as far as MM is concerned and what wouldn't
be.
** Includes a not too subtle hint directed towards the donations page.
* Miscellaneous tightening of documentation.
2018-11-28 Andre Heinecke <aheinecke@intevation.de>
tests, json: Make them run on debian stable.
+ commit a9cfb6dad8ac60543bcb06f4d0515f4a64ad897a
* tests/json/t-json.c (main): Relax version check a bit.
2018-11-26 Ben McGinnes <ben@adversary.org>
python docs: checking key signatures.
+ commit 1c92f3ff55ad0cdda06d05ad0a83193e3a147b7e
* Added instructions for checking key certifications or key
signatures (depending on preferred terminology).
* Added pendulum module to recommended installations, but not to
requirements.
2018-11-22 Ben McGinnes <ben@adversary.org>
python: docs update.
+ commit c87155e6eba2e97e4e6c6ee7e2591088a5489556
* Added documentation for the new methods added to gpgme.version.
* Removed the Flask based advanced use case from the what-is-new
section as that type of code will not be added here.
python: version as integers.
+ commit de6bb23279796b9ae4dc369d58591cb75f818684
* lang/python/version.py.in: added gpg.version.versionintlist
* If gpg.version.versionintlist[2] ever returns -1 then there's a
serious problem with the build and it should be lodged as a bug if
it's repeatable. Seeing this should never happen, but checking for
it is better than not doing so.
2018-11-19 Werner Koch <wk@gnupg.org>
core: Fix format string errors in w32-io.c and use of TRACE_SUC.
+ commit b182838f71d8349d6cd7be9ecfb859b893d09127
* src/w32-io.c: Fix use of TRACE_SUC. Fix some format strung errors.
2018-11-19 Ben McGinnes <ben@adversary.org>
python: import type.
+ commit fd34415bdd57332424bd5a98d279e2331678a2fb
* Fixed bug T4242 and tested that dropping "Import" in favour of
"import_type" does indeed work just fine.
python: import constant.
+ commit f773ad392da57e6be4ade93c44baa5d2057c40b6
* lang/python/src/constants/__init__.py: dropped use of Import
capitalisation and renamed lang/python/src/constants/import.py to
lang/python/src/constants/import_type.py to address bug T4242.
* lang/python/doc/src/gpgme-python-howto: minor docs updates.
2018-11-16 Werner Koch <wk@gnupg.org>
core: Protect the trace macros for fun and profit.
+ commit 7a1e7006d06fdbab86ea79a197c316744b09d933
* src/debug.h: Protect macros using.
(_trace_err, _trace_sysres, _trace_syserr): New helper inline
functions.
core: Fix a LF problem in the new debug fucntion.
+ commit 7eda50a673d15320022375360fd220e8381b69ab
* src/debug.c (_gpgme_debug): Print a LF for an empty FORMAT unless we
are in legacy mode.
core: Remove old debug helper function.
+ commit 94d274a1a33c6fb30981290b127f2c4babc27245
* src/debug.c (_gpgme_debug): Remove.
(_gpgme_debugf): Rename to _gpgme_debug.
core: Simplify the trace maros by using variadics.
+ commit 5857491a2aa7d4975100d90f1ad62c08aa345e3e
* src/debug.h (TRACE_BEG, TRACE_LOG, TRACE_SUC): Use variadic macros
and remove the TRACE_BEG1 et al. Change all users to always pass a
format string.
(TRACE): Ditto.
* src/debug.c (_gpgme_debugf): New.
* configure.ac <GCC>: Add -Wno-format-zero-length.
2018-11-15 Andre Heinecke <aheinecke@intevation.de>
tests: Add run-threaded for multithread tests.
+ commit d0402f886b720d03369887c807581bd980ee70cf
* tests/Makefile.am (run-threaded): Add.
* tests/run-threaded.c: New.
tests,json: Clean openpgp-revocs.d.
+ commit 004e2cad2f26250cd010684f11dc187f08e6f9e1
* tests/json/clean-local: Remove revocs.d
tests,json: Move version check into t-json.
+ commit 40d962b43a183070ba8602cac1e83f2292ebf2c3
* tests/gpg/t-support.h (check_gpg_version, compare_versions),
(parse_version_string, parse_version_number): Remove version
check code.
* tests/json/t-json.c (check_gpg_version, compare_versions),
(parse_version_string, parse_version_number): Add.
2018-11-14 Andre Heinecke <aheinecke@intevation.de>
tests,json: Add sig-notations test.
+ commit d3dae4a445d950c94c952ddf54e534ef71675bd1
* tests/json/t-sig-notations.in.json,
tests/json/t-sig-notations.out.json: New
* tests/json/Makefile.am (EXTRA_DIST): Add files.
* tests/json/t-json.c: Register it.
tests,json: Fix distcheck.
+ commit def030e843bd4576597272abe9fe12f846066576
* tests/json/Makefile.am (EXTRA_DIST): Add inital and final scripts.
(t_json_SOURCES): Don't use cJSON.o as source.
tests,json: Add more tests.
+ commit d0087d45f0207bf82a4f078d972c28c4d1cd2690
* t-config-opt.in.json,
t-config-opt.out.json,
t-import.in.json,
t-import.out.json,
t-sign.in.json,
t-sign.out.json: New.
tests,json: Add missing files and chunking test.
+ commit 88b7221eb737a3102ec61ea385990b7ea7ef2b30
* tests/json/Makefile.am, tests/json/final.test,
tests/json/initial.test: New.
* tests/json/t-chunking.in.json, tests/json/t-chunking.out.json:
New test.
* tests/json/t-json.c: Register new test.
tests,json: Fix match if the first child differs.
+ commit 27ca12e815c0a582d357641a04b889d648b8766e
* tests/json/t-json.c (test_contains): Try all siblings of
the haystack child.
tests,json: Add the bulk of tests.
+ commit dd4b80a5f640232bb44eb825ff5a74ec295fad10
* t-json.c (tests): Register new tests.
* t-createkey.in.json,
t-createkey.out.json,
t-decrypt-verify.in.json,
t-decrypt-verify.out.json,
t-decrypt.in.json,
t-decrypt.out.json,
t-delete.in.json,
t-delete.out.json,
t-encrypt-sign.in.json,
t-encrypt-sign.out.json,
t-encrypt.in.json,
t-encrypt.out.json,
t-export-secret-info.in.json,
t-export-secret-info.out.json,
t-export.in.json,
t-export.out.json,
t-json.c,
t-keylist-secret.in.json,
t-keylist-secret.out.json,
t-keylist.in.json,
t-keylist.out.json,
t-verify.in.json,
t-verify.out.json,
t-version.in.json,
t-version.out.json: New.
tests,json: Add wildcard string matching.
+ commit 9a31fdcb11d04d47dfcc38a8409b84436c549108
* tests/json/t-json.c (test_contains): When searching for "*" accept
every string.
tests,json: Skip tests for older GnuPG versions.
+ commit e55e467d5ffb32c428566a876616d309ef2d15cd
* tests/json/t-json.c (main): Skip if version is not at least
2.2.0
tests,json: Suffix .json to test pattern.
+ commit ca2e2b3d6973b1f942571ba65bd8b57153847777
* tests/json/t-config.in, tests/json/t-config.out: Renamed.
* t-json.c (run_test): Use new naming pattern.
tests,gpg: Add version check hlp to t-support.
+ commit 5b61c092e7444749b08e39ac5aa9fb0818e1a076
* t-support.h (parse_version_number, parse_version_string)
(compare_versions): New. Copy&Paste from src/version.c
(check_gpg_version): New helper to check for a gpg version.
tests,json: Improve verbose mode and add verbose 2.
+ commit 9933641cce595ba308d0f3a1f3ae8f13a9743dd1
* tests/json/t-json.c (main): Handle multiple verbose args.
(test-contains): Improve verbose output
tests,json: Fix and improve t-json.
+ commit 3e5684d99b881787f9739e53fd8e8c22eadc2146
* tests/json/t-json.c (run_test): Terminate argv array correctly.
(run_test): Note and handle empty response.
tests: Add json testrunner.
+ commit 0c31837766e016227b3c8dfd44c476949cd4741e
* configure.ac: Configure makefile.
* tests/Makefile.am: Run json tests if gpg tests are run.
* tests/json/t-json.c: New testrunner for json tests.
* tests/json/t-config.in, tests/json/t-config.out: First test.
2018-11-13 NIIBE Yutaka <gniibe@fsij.org>
build: Update gpg-error.m4 and libassuan.m4.
+ commit c4aa4af50f3102b251cfff9c9755e2dde8d1bd1f
* m4/gpg-error.m4: Update from master.
* m4/libassuan.m4: Update from master.
2018-11-12 NIIBE Yutaka <gniibe@fsij.org>
Fix the previous commit.
+ commit 895176f42af3a1b13614f15dd537a426bb4ac16a
build: Make gpgme.m4 use gpgrt-config with *.pc.
+ commit 60828a505a1c74fd34476c181df2a588ea6f9c83
* src/gpgme.m4 (_AM_PATH_GPGME_CONFIG): Use gpgrt-config with gpgme.pc
when possible.
(AM_PATH_GPGME_GLIB): Likewise with gpgme-glib.pc.
build: Provide gpgme-glib.pc too.
+ commit a76e145a1057e11953b71f804cf3a499c3ad5362
* src/gpgme-glib.pc.in: New.
* src/gpgme.pc.in (avail_lang): Remove.
build: Provide gpgme.pc, generated by configure.
+ commit f3e60521899e6126229b6efedc9f011b84122e11
* configure.ac: Generate src/gpgme.pc.
* src/Makefile.am (pkgconfigdir, pkgconfig_DATA): New.
(EXTRA_DIST): Add gpgme.pc.in.
* src/gpgme.pc.in: New.
* src/gpgme-config.in: Use variables.
2018-11-08 Daniel Kahn Gillmor <dkg@fifthhorseman.net>
spelling: fix misspellings.
+ commit 2557d0ae6ff0336b041129b7bf5c1e3a8c20a805
2018-11-06 Ben McGinnes <ben@adversary.org>
docs: python bindings.
+ commit d0a5caf73c2d6b73dd043f62574c31946e4f347d
* Continued restructuring as part of moving beyond mere;y the HOWTO
file.
* Generated the alternative source files for reST and Texinfo.
* Fixed some errors and updated links after moving the what's new
section to two new files (yes, two).
python examples: another importer.
+ commit 0cb625da84d7e5deeacad113c404a8bc2154c8e7
* Fixed a similar type of bug with the non-protonmail importer.
python examples: protonmail hkp scripts.
+ commit 1b9d30db089e9de3ef859195ad58d2164a0231a0
* fixed a bug in the import try statement for both versions.
2018-11-05 Werner Koch <wk@gnupg.org>
gpg: Avoid error diagnostics with --override-session-key.
+ commit bded8ebc59c7fdad2617f4c9232a58047656834c
* src/engine-gpg.c (gpg_decrypt): Add --no-keyring.
2018-11-03 Ben McGinnes <ben@adversary.org>
docs: typo.
+ commit 13e09bd21a531b448f2f34b1f075315502b76fb6
* lang/python/doc/src/gpgme-python-howto: s/Revokinging/Revoking/g
2018-11-02 Werner Koch <wk@gnupg.org>
w32: Fix a few compiler warnings.
+ commit 5262ce0c815193fc901b00a9b4132925ba672df7
* src/debug.h (TRACE_SYSERR_NR): New.
* src/w32-io.c: Fix compiler warnings.
w32: Log all errors from CloseHandle and WFSO in w32-io.
+ commit ed3f5ad760a28566fa2571e0c7392467bfc3770d
* src/w32-io.c (close_handle, _close_handle): New macro and function;
use in place of all CloseHandle calls.
(wait_for_single_object, _wait_for_single_object): Likewise.
w32: Don't use CloseHandle on an arbitrary integer.
+ commit 4faa0ccf58c7a0f64f51dcbc8466add660080414
* src/assuan-support.c (my_waitpid): Do not close the PID = it is not
a handle.
w32: Revamp the closing of system objects.
+ commit da89528ac39b687bfbed2209ca2637e3bd8e0ac5
* src/w32-io.c (hddesc_t): New.
(reader_context_s, writer_context_s): Replace file_sock and file_hd by
the hddesc_t hdd.
(fd_table): Ditto. Add want_reader and want_writer.
(hddesc_lock): New lock variable.
(new_hddesc, ref_hddesc): New.
(release_hddesc): New.
(reader, writer): Call release_hddesc.
(create_reader, create_writer): Change for new hddesc scheme.
(destroy_reader, destroy_writer): Replace closing by a call to
release_hddesc.
(_gpgme_io_pipe): Change for new hddesc scheme.
(_gpgme_io_close): Ditto.
(_gpgme_io_dup): Ditto. Use want_reader and want_writer.
(_gpgme_io_socket): Change for new hddesc scheme.
core: Print a dump of the I/O data only at level 8.
+ commit 337c10825525d4084f3f437fde5af3806707e6a4
* src/debug.h (TRACE_SUC3): New.
(TRACE_LOGBUFX): New.
* src/posix-io.c: Use TRACE_LOGBUFX instead of TRACE_LOGBUF.
* src/w32-glib-io.c: Ditto.
w32: Fix and improve CancelSynchronousIo use.
+ commit acef4f775f273bbef63bc81afbad8feaabc7414e
* src/w32-util.c (_gpgme_w32_cancel_synchronous_io): Fix name of DLL
and print trace info only on error.
2018-11-01 Werner Koch <wk@gnupg.org>
w32: Use CancelSynchronousIo in destroy_reader.
+ commit 63ba09b541dabbe838253926896e721cb9be564a
* src/w32-util.c (_gpgme_w32_cancel_synchronous_io): New.
* src/w32-io.c (destroy_reader): Use it here.
w32: Merge all the object tables of w32-io into one.
+ commit 338e9edfdb9239f1c9d4409f6d08d79a9d6f285b
* src/w32-io.c (fd_table_size): New. Used in most places instead of
the MAX_SLAFD constant.
(reader_table, writer_table, notify_table): Merge them into ...
(fd_table): this table. Chnage all affected code to take just one
lock.
2018-10-31 Werner Koch <wk@gnupg.org>
w32: Remove unused arg from two functions.
+ commit 79fc7c0fe825014e75bb825c4966a04a22e78254
* src/w32-io.c (find_reader, find_writer): Remove unused start_it
arg. It is always passed as true. Change callers.
w32: Remove all support for WindowsCE.
+ commit 3c04dea3ecebed35208f6b631b2e8b04222ea432
* configure.ac: Remove WindwosCE support.
* contrib/: Remove all; it was only used for WindowsCE.
* src/w32-ce.c, src/w32-ce.h: Remove files.
* src/Makefile.am (system_components): Remove these files.
* src/ath.c, src/ath.h: Remove W32CE support.
* src/data-compat.c (gpgme_data_new_from_filepart): Ditto.
(gpgme_data_new_from_file): Ditto.
* src/debug.c (debug_init, _gpgme_debug): Ditto.
* src/gpgme-tool.c (gpgme_server): Ditto.
(main): Ditto.
* src/priv-io.h: Do not include w32-ce.h.
* src/util.h: Remove WindowsCE support.
* src/w32-io.c: Ditto.
* src/w32-util.c: Ditto.
* src/debug.h (TRACE_SUC4): New.
w32: Remove cruft in w32-io from WindowsME times.
+ commit 2e07d4f89a26bb56a55b2743d39fb37532028ffd
* src/w32-io.c (set_synchronize): Remove.
(create_reader, create_writer): No need for set_synchronize.
2018-10-30 Ben McGinnes <ben@adversary.org>
docs: python docs restructure.
+ commit 78be1e2f543667576a49286476e7d66a707dd17e
* Moved the what's new section out of the HOWTO (mostly), in
anticipation of expanding the docs to be more than merely a HOWTO.
docs: python.
+ commit d5c22966d5bf397cccfa171095885cd207ef6ae3
* dropped the ".org" extension and added a mode line for each file as
this will make scripting format conversions a lot easier.
2018-10-30 Werner Koch <wk@gnupg.org>
w32: Fix previous commit.
+ commit 9eef23fcf39f2b2eb2645afd31a79ba1286d9885
* src/w32-io.c (_gpgme_io_spawn): Move freeing of TMP_NAME behind its
use in an error handling.
2018-10-29 Andre Heinecke <aheinecke@intevation.de>
core,w32: Fix memleak of tmp_name in w32-io.
+ commit 7a1b58045f980c4df76daf225a2a1b604e8604d2
* src/w32-io.c (_gpgme_io_spawn): Free tmp_name.
tests: Add repeat argument to run-verify.
+ commit 681525be003433728d127303d40712803b70cb9c
* tests/run-verify.c (main): Add repeat argument.
core: Do not crash if CMS plaintext is ignored.
+ commit 8f27511862cabac8fa1dd8f883cb78faebc05ef6
* src/engine-gpgsm.c (gpgsm_verify): Fix handling both
plaintext and signed_text as NULL.
cpp,tests: Add another test runner.
+ commit 62c736ba76a19d3b41af69e1f340a53b80f13fe0
* lang/cpp/tests/run-verify.cpp: New.
* lang/cpp/tests/Makefile.am: Update accordingly.
2018-10-25 Andre Heinecke <aheinecke@intevation.de>
cpp: Add some convenience functions.
+ commit 05a0e97f5c12c06082fbeab0fba6f86ddbfbe6b2
* lang/cpp/src/context.cpp (Context::create): New.
* lang/cpp/src/context.h: Update accordingly.
* lang/cpp/src/key.cpp, lang/cpp/src/key.h:
(Key::isBad, Subkey::isBad, UserID::isBad)
(UserID::Signature::isBad): Add shorthand for the isX checks.
* NEWS: Mention it.
2018-10-23 Ben McGinnes <ben@adversary.org>
docs: python howto.
+ commit 04791c896712857feaf9a472a48d7a4c4f287775
* Fixed a few spelling and grammatical errors.
2018-10-21 Ben McGinnes <ben@adversary.org>
Python: docs tweaks.
+ commit 59e38e3d2c14b40045e15c45b6c2f300e8f097dc
* Fixed a minor error in how the reST version of the HOWTO is
generated.
* Updated the help() in __init__.py with a little more detail as to
why not to use the lower level functions.
2018-10-20 Ben McGinnes <ben@adversary.org>
python bindings: callback test.
+ commit 651a1afe80bcc421da26f38015e8a322e140f130
* lang/python/tests/t-callbacks.py: Updated test logic to try
generating a key which expires in 2099 and if that fails then
fallback to an expiration in 2037 in an attempt to catch the 32-bit
systems.
2018-10-18 Werner Koch <wk@gnupg.org>
core: Fix segv in genkey when no endtag is provided.
+ commit fbac11b19d97730494dc9dad3b7f71453ef15581
* src/genkey.c (get_key_parameter): Provide a fallback ENDTAG.
core: Return an error if NULL is provided for genkey's parms.
+ commit 174af15725d4989a840ff3098996cc8a0568f724
* src/debug.c (_gpgme_debug_buffer): Bail out of BUF is NULL.
* src/genkey.c (gpgme_op_genkey): Do no deref a NULL in
TRACE_LOGBUF.
(gpgme_op_genkey_start): Ditto. Return an error if PARMS is NULL.
2018-10-18 Daniel Kahn Gillmor <dkg@fifthhorseman.net>
python: do not export HAVE_CXX11 definition.
+ commit 9de1c96ac3cf6fa126325002b61a1b606037ca88
* lang/python/gpgme.i: ignore HAVE_CXX11 in SWIG interface
2018-10-17 Werner Koch <wk@gnupg.org>
python: Auto-check for all installed python versions.
+ commit ff6ff616aea6f59b7f2ce1176492850ecdf3851e
* m4/python.m4 (AM_PATH_PYTHON): Add a 4th arg.
* configure.ac (available_languages): Remove separate python2 and
python3 and keep just python. Simplify test for pythons. Use an
explicit list of python versions to test.
2018-10-16 Werner Koch <wk@gnupg.org>
core: Really remove CR from version output.
+ commit d63d6d8b8030ec1dc19f9f66c8af3b2f3288d309
* src/version.c (_gpgme_get_program_version): Fix test.
2018-10-10 NIIBE Yutaka <gniibe@fsij.org>
build: Let configure create the VERSION file.
+ commit 85dd0fa4b5f026a13da842bf64ab8a37a68918d4
* autogen.sh: Update from libgpg-error.
* configure.ac: Use mym4_version to create VERSION file.
* Makefile.am (dist-hook): Do not create VERSION.
(EXTRA_DIST): Add VERSION.
2018-10-09 Andre Heinecke <aheinecke@intevation.de>
cpp: Add KeyListMode::Locate.
+ commit c565cf42a38a8bda936df8c52936589cc8a06ca3
* cpp/src/global.h (KeyListMode): Add Locate.
cpp: Add first manual tests.
+ commit 9f85f4967e617e9f97529b89f530c1bc36b52a5c
* lang/cpp/Makefile.am: Add tests subdir.
* lang/cpp/tests/Makefile.am: New.
* lang/cpp/tests/README,
lang/cpp/tests/run-getkey.cpp,
lang/cpp/tests/run-keylist.cpp: New.
* configure.ac: Configure tests makefile.
core: Add trust-model flag.
+ commit 85627e58184529e982369cfc00ed7865244c13d6
* src/context.h (gpgme_context): Extend with trust_model.
* src/engine-gpg.c (engine_gpg): Extend with trust_model.
(gpg_set_engine_flags): Take trust_model from context.
(build_argv): Handle trust_model.
(gpg_release): Free trust_model.
* src/gpgme.c (gpgme_set_ctx_flag): Handle trust-model flag.
(gpgme_release): Release trust-model.
* doc/gpgme.texi: Document new flag for gpgme_set_ctx_flag.
(Context Flags): New subsection for the context flags.
* tests/run-keylist.c (show_usage, main): Add new --trust-model
parameter.
cpp: Initialize all gpgme_key_t's in context.
+ commit 7a1e6dbfb16f71f692a53f7e0955bde86dbb7fee
* lang/cpp/src/context.cpp (Context::startKeyListing),
(Context::keyListResult, Context::signingKeys): Initialize key.
core: Ensure r_key init in gpgme_get_key.
+ commit ecfa88e65fda9c9766ad526d57e2fc8b2884f634
* src/keylist.c (gpgme_get_key): Move r_key init above
the first invalid value check.
qt, tests: Add test for single get key.
+ commit bf4aae45129c1093ee7712bdbcdfe1c8f2ca7c0f
* lang/qt/tests/t-keylist.cpp (testGetKey): New.
2018-10-08 Werner Koch <wk@gnupg.org>
Release 1.12.0.
+ commit 1aff2512d846ea640d400caa31c20c40230b3b04
* configure.ac: Bump core LT version to C32/A21/R0. Bump C++ LT
version to C14/A8/R0.
* lang/qt/tests/Makefile.am (CLEANFILES): Add reader status files.
* Makefile.am (EXTRA_DIST): Add conf/whatisthis.
2018-10-05 Werner Koch <wk@gnupg.org>
core: Apply GPGME_EXPORT_MODE_NOUID also to keyserver exports.
+ commit 913601f4879f011878b53b885f35524df98b5570
* src/engine-gpg.c (export_common): Add keyserver-options to the
send-keys commands.
build: Move config.h to conf/config.h.
+ commit ecfa48fffa93f3d1b66354d2d46872ff614c4a68
* conf/: New dir.
* configure.ac (AC_CONFIG_HEADER): Move header to conf dir.
* doc/Makefile.am (mkdefsinc): Adjust rule.
* lang/python/Makefile.am (copystamp): Ditto.
2018-10-04 Ben McGinnes <ben@adversary.org>
docs: whitespace bug.
+ commit 033da18b88af69b7846de62af4aeea359d27ec20
* Same as before, but exported.
docs: org to texinfo whitspace bug.
+ commit a8d4aa6f763599bbd8ea36ef98b7b4931bf326dc
* replaced "." in headings with "·" to prevent whitspace being
appended by texinfo and breaking git.
docs: python.
+ commit 0b5930b276186afd1ca1dd91d82db7e60dd20606
* Fixed an error in the new index page and then exported to the other
two "source" formats.
docs: python.
+ commit 48258879720a4f423d0efa955da942d69f3c49d4
* lang/python/doc/meta/TODO.org: Added the two major documentation
build system tasks to the TODO list.
* Added an index page in preparation for sorting out the second of
those TODO lists (Docutils is a lot easier to handle than Texinfo).
* Meanwhile, have confirmed that it all builds just fine under
GNU/Linux, OS X and FreeBSD while retaining the documentation, so
that's a nice improvement from 1.11.1.
python: makefiles.
+ commit f3fc73738264d21baf0e9b49fdd5cb67faa11d31
* doc/Makefile.am: Removed a bit I forgot about.
* Renamed lang/python/docs to lang/python/doc bvecause apparently
automake cares about that too.
* Decided to be extra explicit in the manifest because if I don't then
all sorts of things get deleted ... like lang/python
* Tested on an external linux system just in case my osx workstation
introduces too much weirdness.
python: make file.
+ commit 2cca422ca4b2df831a824393077d0b52d79532aa
* lang/python/Makefile.am: Attempting to remove the docs/meta
directory did a lot worse than I thought it was doing, so better to
just be sure the documentation is available than destroy the entire
bindings directory.
python: make file.
+ commit 582f14d97a900106dce0c8d8666a443c6ec25050
* lang/python/Makefile.am: Now that gpg2 has been renamed back to gpg
and gpg1 is semi-deprecated, we should check what the actual gpg
binary is with gpgconf and use that rather than make assumptions per
system.
* Also, it means less worry if gpg3 is ever a thing. (Trust me, I
remember the Python 1 to 2 transition as well as the current 2 to 3
transition). ;)
2018-10-03 Ben McGinnes <ben@adversary.org>
docs: more whitespace checks.
+ commit a174b269432fd37e8546c43e0127580e826432da
* lang/python/docs/texinfo/short-history.texi:
dpcs: python howto.
+ commit 962dfca9b86b53bb00f5b89e453b9eed95454934
* More updates to the docs themselves and the versions to be available
with the next release.
* .texi and .rst copies of the HOWTO and the short history of (this
part) of the project.
docs: python.
+ commit 2151b9828af3760867e856ab939b835a6e2f42e7
* More restructuring. Also the painstaking task of deciphering some
of the more eclectic aspects of Texinfo and make.
docs: python bindings.
+ commit a982f9131520bce0b25f84cba19040bbe5f275bb
* Restructured the docs directory to account for the GNU preferred
source doc format (.texi) and the Python preferred source doc
format (.rst) and the real source doc format (.org).
* Both the perceived source formats will need to be generated from the
.org files and included at this stage. Unfortunately there is not
yet a native org-to-rst transformation method in the org-mode
software in Emacs nor is there a a direct means of going from reST
to Org-mode from Docutils. There's only third party packages like
Pandoc and, while very good, there is no guarantee of consistency;
so we can't entirely automate this bit (yet).
docs: pre-python preparation.
+ commit b2802053192ba0000866b145b715a557d34ed0eb
* doc/Makefile.am: removed the python howto from this file, restoring
it to just the main project and the newer .js files.
* deleted: doc/gpgme-python-howto.texi
* renamed the Short_History.org file to short-history.org to keep the
naming conventions similar.
* All the Python files can (and should) live together.
2018-10-02 Ben McGinnes <ben@adversary.org>
python bindings: CPython order.
+ commit 23894ac9a96081428a590791010ca8beebaf6f9f
* Changed the order of python versions the configure/make process
checks for, placing Python 3.7 ahead of 3.6.
* Updated the HOWTO documentation to reflect this change.
2018-10-02 Werner Koch <wk@gnupg.org>
core: add experimental GPGME_EXPORT_MODE_NOUID.
+ commit 7b861945fdc71fd3c82c91f824172dadd2220fa0
* src/gpgme.h.in (GPGME_EXPORT_MODE_NOUID): New.
* src/export.c (export_start): Adjust option check.
* src/engine-gpg.c (export_common): Implement option.
2018-09-30 Ben McGinnes <ben@adversary.org>
docs: python bindings.
+ commit 76bdfabb057f4ffc56beee15b48d8fa836ba7cce
* Tightened up the docs a little bit, updated the "what's new"
section, dropped the "-draft" version in preparation for GPGME
1.12.0's release.
* Exported another .texi version (and updated the draft copies to this
commit (which ought to be 1.11.1-beta313).
python bindings: fixing decrypt-verify.
+ commit 837a4760533e80f075cd727f18354904b8a54132
* lang/python/src/core.py: First restoring the exception to the being
just that.
* The means to manipulate the error output is temporarily in commented
out code, but ought to be added to a proper test later.
* In the mean time the original test, with a very slight change, works
again.
python bindings: ctx.decrypt.
+ commit 11403a46358f9b6e98776974f3c70f211d9adf85
* lang/python/src/core.py: Fixed methods of detecting whether verify
is a boolean variable or a list.
* Added methods of catching the missing keys exceptions.
* Still retained PEP8 compliance (which might have been where one or
two problems crept in).
* Though this is essentially the correct behaviour, it still does not
quite fit the otiginal test; so that will also require some adjustment.
2018-09-27 Ben McGinnes <ben@adversary.org>
example: local signatures.
+ commit ce045a1ef9c63042fcffb5487b19646d67addba0
* lang/python/examples/howto/local-sign-group.py: added the bit where
specifying the signing key is actually used for signing rather than
just pruning the list of keys to certify.
example: python bindings.
+ commit a047e0f68ef471097e514665249063f267257b19
* lang/python/examples/howto/local-sign-group.py: locally sign every
key in a group line except one's own keys. Intended to address the
sort of thing one might see on lists like PGPNET or other closed
groups amongst activists, journalists, etc. where everyone encrypts
to all recipients, but may not sign everyone's keys publicly..
docs: python bindings installation.
+ commit 1d40d360bccb05b4c66313a60a902d04a0d3c9ff
* lang/python/docs/gpgme-python-howto.org: added a section on
installing the bindings to a python virtualenv.
tests: python bindings.
+ commit b9aea3b9c2c2762a9ae8d677196f82acc6a1c028
* Fixed the final assertion to look for what will actually be reported
in that case instead of something else (i.e. it looks for an
IMPORT_ERROR status code).
examples: python bindings.
+ commit 7c9f49a4991c1ccd0cb582875207b373d4fccf50
* Fixed homedir specifying logic in several cases.
2018-09-25 Ben McGinnes <ben@adversary.org>
docs: a typographical two-step.
+ commit b625258d54782040195cc5ad3b255685af6f6c4e
* Sometimes you really do need or want punctuation in a heading, but
ideally without something else generating whitespace and other
annoyances to go with it.
* Trying a real decimal point instead.
docs and examples: python bindings.
+ commit 62e4e2cb5edb09183b9f9d448f992fe65cb6db85
* Woumd up the "what's new" section.
* Added an example for sending a key to the keyservers via hkp4py.
* Updated the export key code to use a more complete check for the
$GNUPGHOME location.
* Expanded on the installation and reinstallation troubleshooting
section.
2018-09-24 Ben McGinnes <ben@adversary.org>
docs: python bindings howto.
+ commit e9da4d97107b40a48583775df34783f07be5dfdb
* Added a What's New section to summarise changes since the last
release. There have been quite a few and some attention does need
to be drawn to some of them.
* Confirming certain issues with some platform builds, especially
BSD/OSX vs. Linux issues which will need to update the installation
troubleshooting guides.
2018-09-23 Ben McGinnes <ben@adversary.org>
docs and examples: python bindings howto.
+ commit b12b2cc99621fe32a2d698ce7f091f3225f35bd0
* Added more comprehensive examples using hkp4py and added a couple
more example scripts for protonmail.
examples: python bindings and hkp4py updates.
+ commit ced4bdbbb239c1fe209665b4f5a7aeb9651889ed
* Mostly tightening up the details on the hkp4py example script.
* Also fixed a typo in the LGPL boiler plate text included in all the
other example scripts for the HOWTO.
python bindings: importing from keyservers with hkp4py.
+ commit 6ed9a77c92c32f77092b36c149185d4359cd6e55
* added a new example script to search the keyservers and import the
results, this time using Marcel Fest's hkp4py module.
* Updated the key importing section to match this addition.
* Tested with the current version of hkp4py from github.
2018-09-22 Ben McGinnes <ben@adversary.org>
docs: python bindings howto.
+ commit 3622576105ae1924d9b40ce0d09bf9a7accc0ed1
* Confirmed that updates to the tests have significant'y improved that
output.
* Updated some of the additional notes for the section on hkp4py.
** This is in anticipation adding at least import examples using that
module as well. It may also include adding examples of exporting a
key and uploading it to the keyservers.
2018-09-20 Werner Koch <wk@gnupg.org>
python: Fix a couple of syntax errors.
+ commit 6878126b6f53cdf7daeeaf68116dda008564c2fa
* lang/python/tests/t-keylist-from-data.py: Add missing line
continuation.
* lang/python/tests/t-keylist.py: Ditto.
* lang/python/tests/t-quick-key-creation.py: Ditto.
* lang/python/tests/t-quick-subkey-creation.py: Ditto.
python: Silence a few warnings.
+ commit dcdabf5f2ef84e1f304fcc0590ec4bb160354af5
* src/gpgme.h.in: Obsolete "class" also for Python.
* lang/python/gpgme.i: Silenece a swig warning. Silence a gcc
warning.
python: Fix regression in the test suite.
+ commit 9f19b3aaecd23a12b2e6692faeefa936e490d343
* lang/python/tests/Makefile.am (GNUPGHOME): Remove stray backslash.
tests: Don't try using keys from a scmartcard.
+ commit a824f4498ea9bae5dca515c56e2455ec0ce98b50
* tests/gpg/Makefile.am: Disable scdaemon
* lang/python/tests/Makefile.am: Ditto.
2018-09-20 Ben McGinnes <ben@adversary.org>
docs: python bindings and its special request.
+ commit 5cb67257f2b3b5fcfd3444e366f26a0f2ae09504
* Added some material on using the new-ish hkp4py module with GPGME.
* Example code will be added later once a couple of little issues are
addressed.
2018-09-19 Werner Koch <wk@gnupg.org>
json: Remove subkey-algo from createkey command.
+ commit c569adb5e3e3082bd68cdc34a2d349b7c28d3768
* src/gpgme-json.c (op_createkey): Remove subkey-algo param.
(GPG_AGENT_ALLOWS_KEYGEN_TRHOUGH_BROWSER): Fix typo.
* lang/js/src/Keyring.js: Remove subkey-algo support.
* lang/js/src/permittedOperations.js: Ditto.
2018-09-18 Ben McGinnes <ben@adversary.org>
docs: python bindings.
+ commit 362caaf02f3a25b7e626572aa30b87771c2c8f4d
* Updated the Cython example code slightly, along with the
corresponding explanation.
2018-09-17 Ben McGinnes <ben@adversary.org>
docs: python bindings howto.
+ commit f4d83800d89173e618cceca44b584778217fadb3
* Tightened up the Cython demonstration.
2018-09-16 Ben McGinnes <ben@adversary.org>
docs: cython sanitized.
+ commit 44c846345e91413b9d6a1f7b26f59db5b1c32433
* Sanitized the shell command examples of extraneous whitespace.
* Removed keycount.c as sanitising it is pointless and it will be
generated by Cython when the example is followed.
* Regenerated the .texi version.
docs: python bindings howto.
+ commit 61c08f7435570783f5c267e42d288d31bf77e560
* Added new advanced section with an example of using the Python
bindings with CPython code compiled back to C code using Cython.
* Though it may seem a bit counter-intuitive to use the bindings just
to go back to C via a different route, this is not actually stupid.
* Added examples/howto/advanced/cython/ directory.
* Added keycount.pyx, setup.py and the keycount.c file which the first
two generated with Cython. Not including the .so and .o files from
the build.
* Exported the .texi version of the howto for the main docs.
docs: even more edits.
+ commit fbec29fdac7a4f162e73f24dac2a6b205239ef03
* doc/gpgme-python-howto.texi: hunting down and killing commas,
Oxford or not it can't stay in a heading.
docs: more edits.
+ commit 2a1b0b88d96b722817f3ac9edf002a54c65084b8
* lang/python/docs/gpgme-python-howto.org: more tweaks and edits,
along with another build of output formats.
* doc/gpgme-python-howto.texi: updated texinfo version for parent docs.
docs: whitespace culled.
+ commit 91b26b0638d9f92f0e90aab1c3750c14d72db301
* lang/python/docs/gpgme-python-howto.org: Identified and fixed the
headings which kept generating lines with trailing whitespace when
exporting to Texinfo format and adjusted them to prevent that.
docs: renaming and drafts.
+ commit 766ec0e4a36c120ed4ef5463b5fdf8e7ed3b4563
* lang/python/docs/gpgme-python-howto.org: Renamed file to better fit
the rest of the project's docs.
* Added a section on the very unofficial drafts I periodically post
links to since they're often the easiest way to get a web version in
front of someone in a hurry.
2018-09-15 Ben McGinnes <ben@adversary.org>
docs: python howto texinfo update.
+ commit 76f77022848894ee9d8490255cefdd0100248b45
* doc/gpgme-python-howto.texi:
docs: Python howto update.
+ commit 7e9df9b9e33131f5d7c58ad58249f9ae766f1341
* lang/python/docs/GPGMEpythonHOWTOen.org: Added corresponding GPGME
version number to table at the start and cut the shortcut from the
groups.py example.
* doc/gpgme-python-howto.texi: New export of Texinfo file for docs
build.
docs: generated whitespace.
+ commit 93a2ea0207fac0a18a48b671df11dc8575579c39
* doc/gpgme-python-howto.texi: culled whitespace included with the
org-mode export.
Docs: including howto with standard docs.
+ commit 2e5b0603709855eb1d8a1a3fd51d3245f4301ada
* gpgme.spec.in: Added gpgme-python-howto.info build on the grounds
that it now deals with certain possible installation issues and end
users encountering them would want the docs to hand.
* doc/gpgme.texi: updated the copyright year to this year.
Docs: Python bindings HOWTO.
+ commit b19faa26e01df4d78286e013313e5ab25f517d49
* Added doc/gpgme-python-howto.texi: generated from
GPGMEpythonHOWTOen.org and then slightly modified so the generated
Info file doesn't use camelCase.
* doc/Makefile.am: Updated makefile to include the Python HOWTO with
gpgme_TEXINFOS and to export the generated files to the webserver
along with the main GPGME one.
Python bindings: docs.
+ commit d04fb0bf1271c91b88686c947a5b14ffc9b505ef
* lang/python/docs/GPGMEpythonHOWTOen.org: Fixed a few errors in the
newer sections.
* Updated code in the examples using secret key exporting and group
lines to reflect the Python 2.7 compatibility fixes added.
Python bindings: examples.
+ commit 4e8a92ed14ea3da3d92f07d5f62fd325a2adebde
* lang/python/examples/howto/export-secret-keys.py and groups.py:
Updated the backwards compatibility adjustments to account for
unicode differences between python 2 and 3.
Python examples: backwards compatibility.
+ commit 864ef9b40f5f9d0c66a458b6033277938d7d1d50
* lang/python/examples/howto/groups.py: subprocess update
* lang/python/examples/howto/export-secret-keys.py: subprocess update
Both of these try the nice and easy method of getting the subprocess
output available in Python 3, but will fall back to the older Popen
method if it doesn't work. Essentially this is to be a little nicer
to Python 2.7.15 (even though the examples are filled with warnings
that py2 support is not guaranteed with the examples).
2018-09-10 Thomas Oberndörfer <thomas@mailvelope.com>
js: Fix errorDetails of GPGME_Signature.
+ commit dd7d37ca21684d4d77db4f513c6212776fc6ea82
* lang/js/src/Signature.js (GPGME_Signature.errorDetails):
Access properties from the summary object.
2018-09-08 Ben McGinnes <ben@adversary.org>
estreams revised.
+ commit 2375959180aa8eb0d23cc3f8240c3f5b5262b819
* Egon Spengler was right, crossing the streams is bad.
* Restored both src/gpgme.def and src/libgpgme.vers to use the
estreams symbols without the leading underscore.
* The new_from_estream() function added to lang/python/src/core.py and
set to alias the new_from_stream() function remains.
* Opted for the solution favouring Linux onthree main grounds:
1. Andre reported major problems with Windows as well, so the number
of potentially affected systems would vastly increase.
2. All the BSDs and OS X have spent far more time and development
work in order to accommodate the eccentricities of both Microsoft
and the GNU Project (ref. GCC), so they're more likely to be able
to cope with doing so again than the other way around.
3. If I really have to I can write a custom installer for OS X to
try this and, if it fails, to then patch the two symbol entries and
recompile from scratch. That said, I may not have to since it
actually behaved during the most recent tests for this
commit; into ten separate CPython installations and all five
supported versions (standard source installs and OS X Framework
installs for each version).
2018-09-02 Ben McGinnes <ben@adversary.org>
estreams symbols for python bindings.
+ commit 879cc1f84fbf09cb4eeb78bce16f52a1a36032ba
* It turns out that even though some platforms detect differing
symbols for estreams, the two types do not appear to be in
conflict. At least they don't from the BSD/OS X side of things.
As a consequence both versions are now included.
2018-08-31 Ben McGinnes <ben@adversary.org>
docs: python bindings.
+ commit 55991aa91667b9184cc9fc86a3ac21b9640511ef
* minor typographic update.
2018-08-30 Ben McGinnes <ben@adversary.org>
python bindings: estreams fix.
+ commit 1d00fb987b903e245d484bddfe3c0a0aba670ac1
* lang/python/src/core.py: Adjusted new_from_estream function to alias
new_from_stream instead of fd.
* fixed the _gpgme import errors introduced in commit
08cd34afb762975b0273575035dacf69449ef241 by changing the exported
functions/types to match the inner module where all the work is
done, rather than the outer one(s).
2018-08-29 Ben McGinnes <ben@adversary.org>
python bindings: core.
+ commit 18ea83867168e8db0a2f2c8057d087363083486c
* lang/python/src/core.py: expanded gpgme_error check lists.
python bindings: core.
+ commit dcedddecb6f8f11682aed3b09b88ee1511010faf
* lang/python/src/core.py: added gpgme_data_set_flag to the errorcheck
funtion.
python bindings: core.
+ commit 6078b5303362b2e5ce56660967fac313ca3d5ae9
* lang/python/src/core.py: added new function new_from_estream to wrap
new_from_fd just like new_from_stream does and for the same reason.
2018-08-29 Andre Heinecke <aheinecke@intevation.de>
json: Fix detached verify.
+ commit 1420c3bd681648b032d756536311621a3627bedb
* src/gpgme-json.c (op_verify): Only create output and
use it for clearsigned and opaque signed.
2018-08-29 Ben McGinnes <ben@adversary.org>
docs: python bindings - protonmail examples.
+ commit f7e5ae7f1618bd355b885c5c32dd028afad35453
* lang/python/docs/GPGMEpythonHOWTOen.org: Updated links to the
ProtonMail keyserver import scripts and added a warning regarding
being unable to update third party keys.
* lang/python/examples/howto/pmkey-import-alt.py: added usage.
* lang/python/examples/howto/pmkey-import.py: added usage.
2018-08-28 Ben McGinnes <ben@adversary.org>
docs: python bindings HOWTO.
+ commit 02d0b97bfedc732351cc4e89c92fcd9d31209535
* Finished CFFI vs SWIG bit in known issues.
* tidied up some of the structure.
* Fixed some minor errors and links.
docs: python bindings.
+ commit a8a983c5bc0f0deeeebda455ad73309fff48b61f
* Added section on why no CFFI.
docs: python howto.
+ commit c2831e2377843c8625df158ef32e01f8c19494eb
* Added another key import example using ProtonMail's new keyserver.
2018-08-28 Andre Heinecke <aheinecke@intevation.de>
json: Delete primary key if subkey gen fails.
+ commit 3bdf8be6d2c57319399fe14e27e52b323a17750a
* src/gpgme-json.c (op_delete): Delete primary key on
subkey gen error.
json: Allow NULL request in encode and chunk.
+ commit 7d3c13df263ed88c17005920e75e0486abeae5b9
* src/gpgme-json.c (encode_and_chunk): Don't error on NULL
request.
2018-08-27 Ben McGinnes <ben@adversary.org>
docs: python bindings.
+ commit 1c261b9fa3462360b6c3f43b243091cd50534903
* Added details on installation troubleshooting.
2018-08-27 Werner Koch <wk@gnupg.org>
json: Do not put FILE_NAME into the verify result.
+ commit 53c5b9a265d33f2cc54f489375a929602338aee8
* src/gpgme-json.c (verify_result_to_json): Remove "file_name".
2018-08-27 Jasper Spaans <jasper@startmail.com>
core: Export gpgme_data_new_from_estream function.
+ commit 08cd34afb762975b0273575035dacf69449ef241
2018-08-23 Andre Heinecke <aheinecke@intevation.de>
json: Add sender and file name to encrypt.
+ commit a5f8dac77d50480a208c99398df323c58ce6dc58
* src/gpgme-json.c (hlp_encrypt, op_encrypt): Support sender
and file_name.
2018-08-21 Andre Heinecke <aheinecke@intevation.de>
json: Add proper decrypt_result_t handling.
+ commit 263dadb04aed4f973248b32c52af6ca59bcb7c1f
* src/gpgme-json.c (recipient_to_json, decrypt_result_to_json):
New.
(op_decrypt, hlp_decrypt): Update.
js: Update extra_dist files.
+ commit 738a8e6f950af08305c082d59a91d3d5d45800fa
* lang/js/BrowserTestExtension/Makefile.am,
lang/js/Makefile.am (EXTRA_DIST): Update.
Add example manifests for gpgme-json.
+ commit 9608996d88549b60da490e5eeb41db023f97a038
* doc/examples/gpgme-chrome.json, doc/examples/gpgme-mozilla.json: New.
* doc/Makefile.am (EXTRA_DIST): Include them.
js: Improve README.
+ commit 605eb8a8bfcb12141d7cc5626e75af812cda6c75
* lang/js/README: Clarify structure at the beginning.
Remove js as language from configure.ac.
+ commit fe3de5b86b4a25f5b23cf1af2fd1809ef6c087a0
* configure.ac: Remove js language.
2018-08-20 Andre Heinecke <aheinecke@intevation.de>
json: Add subkey_algo and defaults to createkey.
+ commit 8103eeba809b6e7156d861783309574b93909169
* src/gpgme-json.c (op_createkey, hlp_createkey): Add subkey_algo
handling.
(hlp_createkey): Fix documentation of expiry.
2018-08-19 Ben McGinnes <ben@adversary.org>
Python bindings examples.
+ commit 75bc5e6356eca1b7fb76653e7c82c2477f8859b0
* import-key.py: fixed a minor typo.
* pmkey-import.py: locates and imports keys from the ProtonMail keyserver.
* pmkey-import-alt.py: the same as the previous except with setting an
alternative $GNUPGHOME directory.
2018-08-18 Ben McGinnes <ben@adversary.org>
Python bindings setup file.
+ commit 03b899dbe14a3c32fd018c20c7d5156366fdcc3d
* Moved the build import back up where it belongs.
* Included comments indicating how to build and install for multiple
Python versions beyond the first 2 on the same system.
Python bindings tests: Near PEP8 compliance.
+ commit 5facba45c83f7daaacc49e66306e13a35aeb74be
* PEP8 compliance for the vast majoeity of the tests.
Python bindings examples: PEP8 conpliance.
+ commit b5fbe90676f46b9615919133753a65b20318fe63
* Appears to be complete compliance.
Python bindings setup: Near PEP8 compliance.
+ commit fc55caccfc87253e1703df66b21917cc399fba62
* lang/python/version.py.in: Fixed most things, but there's still an
issue near the build portion with the existing Python bugs referenced.
* lang/python/setup.py.in: Now PEP8 compliant.
Python bindings constants: PEP8 compliance (almost)
+ commit 8a6a73b9c4f92b159450edb5e4a780fc7389ca82
* PEP8 compliance for all constants except the globals in
src/constants/__init__.py depending on whether the import sequence
affects the globals themselves.
Python bindings src: PEP8 compliance.
+ commit 7962cde13c5cbdc643bbde795e2c29e638dfc186
* import namespace clearance for src/*.py.
* Fixed a handful of is/is not None checks as well.
2018-08-13 Ben McGinnes <ben@adversary.org>
Symmetric example.
+ commit 279cac0ffbb3d865d997dc7fc9c1b53bbb55d3a2
* lang/python/examples/howto/symcrypt-file.py: *sigh*; passphrase was
right the first time, just the error check that wasn't.
* I really should stop second guessing myself one of these days ...
Symmetric encryption example.
+ commit a256d84882616341b3f357340533893a1db8b5c1
* lang/python/examples/howto/symcrypt-file.py: Fixed the error code
and the passphrase key word arg.
Symmetric encryption example.
+ commit ed5ef8293cdbfcc3b91268eeae1eb6b4f8d271bb
* lang/python/examples/howto/symcrypt-file.py: A variation on standard
key based encryption.
2018-08-10 Ben McGinnes <ben@adversary.org>
PEP8 compliance and other code fixes.
+ commit 94bf13e78e65e1d1bc2e5d6b2311f9c9657bfe5f
* Ran all the .py files in src/ and below through Yapf.
* Included some manual edits of core.py, this time successfully making
two notorious sections a bit more pythonic than scheming.
* Left the module imports as is.
* This will be committed if it passes the most essential test:
compiling, installing and running it.
2018-08-09 Ben McGinnes <ben@adversary.org>
Link fixes.
+ commit b6d2a66b41fee5b7fb484566aefcdbcc4cdad094
* lang/python/README: Fixed links in both versions of the README.
2018-08-08 Andre Heinecke <aheinecke@intevation.de>
json: Wipe memory in cJSON_Delete.
+ commit 4dd1d0abd34a382d1cd67cabb737950a39cb3fdc
* src/cJSON.c (cJSON_Delete): Wipe memory on deletion.
json: Only use calloc instead of malloc.
+ commit fdc07b3ddc2f68e6fcb33703ea41126d0a841290
* src/cJSON.c, src/gpgme-json.c (CALLOC_ONLY): New define
to change xmalloc / xtrymalloc to use calloc.
json: Add checks when skipping byte.
+ commit 974a95db04f9cdea02867f0246445b4679517ba0
* src/cJSON.c (parse_string, cJSON_Minify): Check for
terminating NULL byte when skipping the byte after a an escaped
quote.
json: Don't error out if chunksize is omitted.
+ commit 6e48bb0f1cbf662026bf0f70549b52bafe00c017
* src/gpgme-json.c (encode_and_chunk): Don't error out
if no chunksize is provided.
cpp: Fix use after free in gencardkeyinteractor.
+ commit 3b782443600e8091c5f19580cb218100bcbb4ad7
* lang/cpp/src/gpggencardkeyinteractor.cpp
(GpgGenCardKeyInteractor::Private::keysize): Change to string.
2018-08-06 Andre Heinecke <aheinecke@intevation.de>
Make GNUPGHOME for tests overridable.
+ commit d09d19fa9fe1e81dd819b32208b4bd09f83e3918
* lang/python/tests/Makefile.am,
lang/qt/tests/Makefile.am,
tests/Makefile.am,
tests/gpg/Makefile.am,
tests/gpgsm/Makefile.am,
tests/opassuan/Makefile.am (GNUPGHOME): Make variable explict.
2018-07-24 Andre Heinecke <aheinecke@intevation.de>
cpp: Add safety checks for key update.
+ commit a6e5c8bf18696007c48c6f362aa355020fe82f21
* lang/cpp/src/key.cpp (Key::update): Check that the key is
not NULL.
* lang/cpp/src/verificationresult.cpp (GpgME::Signature::key):
Check for fingerprint.
2018-07-22 Ben McGinnes <ben@adversary.org>
docs: python bindings howto.
+ commit 4d1642b11ea64b8009a8720d9b59e89636d691d2
* Fixed and tested the changes necessary for org-mode to correctly
parse pythonic (Python 3) indentation.
* Updated the source blocks to recommended upper case for BEGIN_SRC
and END_SRC.
* Tested and confirmed XHTML output matches correct examples.
* Tested against pseudo-control output via exporting from org-mode to
org-mode and then exporting that to XHTML. Remaining differences
appear to be discarding the custom tags used to provide X[HT]ML id
elements to each section which does not appear to offer any benefit.
* Exporting directly to XHTML or other HTML output should no longer
cause problems, but if there are any then the first step should be
exporting from org-to-org and then exporting that to XHTML.
doc: python bindings howto.
+ commit d7c5366d58d035d7b7119f955824e842d0b6bbe0
* Another retrofitting of the HOWTO Python example code, this time
following adjustments to python-mode configuration and having
trawled through the org-mode mailing lists for clues.
doc: python bindings howto.
+ commit b47e1bb98a8ff93cae560449bfa9103c47f4d4f8
* Added org-mode byline.
2018-07-19 Werner Koch <wk@gnupg.org>
core: Clear all flags for a new data property.
+ commit 5ef492c5635ae1677eed6f439a75a86a99dbbe18
* src/data.c (PROPERTY_TABLE_ALLOCATION_CHUNK): New.
(insert_into_property_table): Use it here. Clear all flags.
core: Blank out the plaintext after decryption failure.
+ commit 085cdeddef637cc057362fcbde13b0261b8699ec
* src/data.h (data_prop_t): New enum.
(struct gpgme_data): Add field propidx.
* src/data.c (property_t): New.
(property_table, property_table_size, property_table_lock): New.
(insert_into_property_table): New.
(remove_from_property_table): New.
(_gpgme_data_get_dserial): New.
(_gpgme_data_set_prop): New.
(_gpgme_data_get_prop): New.
(_gpgme_data_new): Connect new object to property_table.
(_gpgme_data_release): Remove from property_table.
(gpgme_data_read): With DATA_PROP_BLANKOUT set don't fill the buffer.
* src/data-mem.c (gpgme_data_release_and_get_mem): Likewise.
* src/decrypt.c (struct op_data): Add field plaintext_dserial.
(_gpgme_op_decrypt_init_result): Add arg plaintext and init new field.
(_gpgme_decrypt_status_handler): Set DATA_PROP_BLANKOUT on decryption
failure.
(_gpgme_decrypt_start): Pass PLAIN to the init function.
* src/decrypt-verify.c (decrypt_verify_start): Ditto.
* configure.ac: Check for stdint.h and bail out if uint64_t is not
available.
2018-07-19 Andre Heinecke <aheinecke@intevation.de>
cpp: Print origin and last update for key/uid.
+ commit 8168dfbeb12042a7f7b1bad918ef60df92bfd1a7
* lang/cpp/src/key.cpp: Print origin and last update in
iostream operators.
2018-07-19 Werner Koch <wk@gnupg.org>
json: Don't use strdup but the xtrystrdup wrapper.
+ commit af2c74d6c06a9fb08f7de15d41162d09f871a62e
* src/gpgme-json.c (create_keylist_patterns): Use CNT as first arg for
xcalloc.
(process_request): s/strdup/xtrystrdup/.
core: New interface gpgme_data_new_from_estream.
+ commit f42cd70f18d53df47cc2d027bade736377d39b71
* src/gpgme.h.in (gpgme_data_new_from_estream): New.
* src/data-estream.c: New.
* src/data.h (gpgme_data): New union member e_stream.
2018-07-18 Andre Heinecke <aheinecke@intevation.de>
json: Fix memleak in native msging repl.
+ commit 98a75a16ccdfe51799a27894d2eb26dba04b34f2
* src/gpgme-json.c (native_messaging_repl): Free request and
response after each loop.
json: Ensure that native msging request is string.
+ commit 6d7b4382c3e12ba1dbbd0762dfa850c76750d838
* src/gpgme-json.c (native_messaging_repl): Ensure that the
request is NULL terminated.
json: Fix crash by ensuring response is never NULL.
+ commit 82e4b900a96c837392259469a9a5821a95e7a707
* src/gpgme-json.c (encode_and_chunk): Try to always
return at least an error.
(process_request): Double check that it does not return NULL.
json: Fix memory errors in create_keylist_patterns.
+ commit b78140daf7720132711314a4e5ed878b49da99f4
* src/gpgme-json.c (create_keylist_patterns): Reserve two
pointers more then linefeeds.
(create_keylist_patterns): Fix loop to count linebreaks.
(create_keylist_patterns): Use calloc for good measure.
qt: Handle encoding for diagnostics.
+ commit 16462c54b3503e77bc48c2486234531d7bc31b6d
* lang/qt/src/threadedjobmixin.cpp (fromEncoding)
(stringFromGpgOutput): New helpers.
(markupDiagnostics): Use it.
2018-07-16 Andre Heinecke <aheinecke@intevation.de>
json: Fix crash on invalid json.
+ commit 1686e07e77a1eee3b2708d0231a5a549956021f7
* src/gpgme-json.c (process_request): Init res. Check for
json object before encode and chunk.
json: Fix uninitialized key unref in op_delete.
+ commit cc21101a7494ea0a17c3012fcb86e77b00b494fa
* src/gpgme-json.c (op_delete): Init key.
2018-07-16 Werner Koch <wk@gnupg.org>
json: Minor cleanups in cJSON.c.
+ commit 1933f5b8056b2671301379106cca4504c4187795
* src/cJSON.c: Add comments on the origin of the code.
(parse_string): Allocate an extra byte for safeness.
(cJSON_AddItemToArray): Allo ARRAY to be NULL.
json: Fix buffer overflow in cJSON.c.
+ commit 013a7f47ab486c380b3c97637d3b15f11de74fe8
* src/cJSON.c (parse_string): Correctly detect bad hex.
2018-07-13 Ben McGinnes <ben@adversary.org>
python bindings: example scripts.
+ commit 1bb3f8409d4bbec403bea768184a691d9d7ea42d
* Fixed incorrect mention of output prompt referencing secret keys
when the scripts are only for exporting public keys in whole or
minimised forms.
2018-07-11 Andre Heinecke <aheinecke@intevation.de>
json: Add with-sec-fprs param to export.
+ commit 6cc842c9aa76d19448141e5117ac59452d7a1ff3
* src/gpgme-json.c (add_secret_fprs): New helper.
(op_export, hlp_export): Extend for with-sec fprs.
2018-07-10 Ben McGinnes <ben@adversary.org>
example scripts: python work-arounds.
+ commit 0e760e396fbf13e902d0dc0c048bff0d5410fa16
* fixed three typos which were guaranteed to break said script.
2018-07-09 Ben McGinnes <ben@adversary.org>
docs: python bindings howto.
+ commit 1eceacaff4ad5d6a4b759a7d00907dbc8278f12c
* Complete typographic overhaul.
* Removed all section level indentation since it does not affect
output formatting, but might affect source code examples.
* In text-mode stripped out all tabs which had crept in and replaced
them with four spaces.
* Updated all code examples (again) to conform with Python-mode.
* Bumped version number in preparation for next release of GPG 2.2.9
and corresponding GPGME release.
2018-07-09 Andre Heinecke <aheinecke@intevation.de>
json: Add with-secret without secret only.
+ commit 40471ec12f7b4ba37922813a02ebb2aaaa963b51
* src/gpgme-json.c (op_keylist, hlp_keylist): Add "with-secret"
as a flag to do a public keylist with secret information.
tests: Add --with-secret to run-keylist.c.
+ commit c287f09ac0f090a65299ac7c15e3c9b4947d4b67
* run-keylist.c (show_usage, main): Add --with-secret.
doc: More explicit doc for EXTERN and LOCAL modes.
+ commit 31bc51e2aff0a28b551410c9def2f578d0d28cea
* doc/gpgme.texi (GPGME_KEYLIST_MODE_EXTERN),
(GPGME_KEYLIST_MODE_LOCATE, GPGME_KEYLIST_MODE_LOCAL): Mention
command line flags for CMS and OpenPGP Protocol.
Add ctx flag for auto-key-locate.
+ commit 7bc5d3c7e41c6e42a583a61a4c9504058fbb2976
* src/context.h (gpgme_context): Add auto_key_locate.
* src/engine-gpg.c (engine_gpg): Add auto_key_locate.
(gpg_set_engine_flags, build_argv): Handle auto_key_locate.
(gpg_release): Free auto_key_locate.
* src/gpgme.c (gpgme_release): Free auto_key_locate.
(gpgme_get_ctx_flag, gpgme_set_ctx_flag): Handle auto-key-locate.
* doc/gpgme.texi: Document auto-key-locate flag.
* tests/run-keylist.c (show_usage, main): Add --from-wkd option.
2018-07-07 Ben McGinnes <ben@adversary.org>
python bindings: howto examples.
+ commit cacca62d06c6cf4a291f7ab2571cf52d671d140f
* Made sure all example scripts meet PEP8 compliance.
* Required fixing approx. a dozen of them in minor ways.
2018-07-05 Andre Heinecke <aheinecke@intevation.de>
qt: Handle OpenPGP Diagnostic log.
+ commit 66c2a99422dd9a52d8342165ed1d033c4f29b9e0
* lang/qt/src/threadedjobmixin.cpp (_detail::audit_log_as_html):
Handle OpenPGP audit log differently.
cpp: Add enum mapping for GPGME_AUDIT_LOG_DIAG.
+ commit 629afebe5017db97f2a318f6878fe1f9d3e60189
* src/context.cpp (to_auditlog_flags): Map DIAG value.
* src/context.h (AuditLogFlags): Add it.
core: Add gpg auditlog to get diagnostics.
+ commit a2458806f8bf04b66795e1dde765b42fe1ef6797
* src/engine-gpg.c (engine_gpg): Add diagnostics member.
(gpg_release): Release diagnostics data.
(gpg_new): Set up logger-fd and diagnostics.
(gpg_getauditlog): New. Copy diagnostics to a user data.
(engine_ops): Add getauditlog.
* src/engine-gpgsm.c (gpgsm_getauditlog): Return not implemented
for GPGME_AUDITLOG_DIAG.
* src/getauditlog.c (getauditlog_start): Don't reset engine
for diagnostics.
* src/gpgme.h.in (GPGME_AUDITLOG_DIAG): New.
(GPGME_AUDITLOG_DEFAULT): New alias to 0.
* tests/run-decrypt.c (show_usage, main): Add --diagnostics.
* doc/gpgme.texi(Additional Logs): Document getauditlog.
2018-07-04 Andre Heinecke <aheinecke@intevation.de>
cpp: Fix memory of DecryptionResult::symkeyAlgo.
+ commit 7d65dc2a5c4f32139a1b9b1f0bd375f7ab1c58f6
* lang/cpp/src/decryptionresult.cpp (Private, ~Private): strdup
the symkey algo.
json: Add keylist mode locate.
+ commit 76b847091593669c8a7e38918267d6be97dbd4d0
* src/gpgme-json.c (op_keylist, hlp_keylist): Add locate.
2018-07-01 Ben McGinnes <ben@adversary.org>
python bindings: scheming serpents.
+ commit 5bca49975063f788b2499342d5a565faf54511db
* Apparently I am wrong and Scheme is the new Python after all.
* Non-import related PEP8 compliance must wait for another day, though
the other PEP8 fixes remain.
python bindings: gpg.core.
+ commit 789ea1b019885d5d1db1662e3cd4fda33636e30c
* Changed id/else statements to a more pythonic form from scheme
masquerading as python - sorry Justus, it had to go ;).
* With the added bonus of enabling PEP8 compliance in those sections.
* Fixed remaining PEP8 compliance issues with the exception of the
imports at the beginning of the file (changing those will break the
entire module, so we'll cope with it as it is).
2018-06-29 Ben McGinnes <ben@adversary.org>
m4 update: python 3.7.
+ commit 35e29e139534ed217340879732a7adfdbd57c91d
* Fixed an error in arcane m4 syntax.
python bindings: python 3.7.
+ commit 43a2b5754571292b25402e20cd044ebda9316c77
* Bindings confirmed to work with the newly released 3.7.0.
* Updated M4 file to reflect this change and correct the Python binary
search order (3.7 is not yet given priority, but will still be found
first via the more generic python3 executable).
* Updated setup.py.in, bindings documentation and README to reflect this.
2018-06-28 Ben McGinnes <ben@adversary.org>
whitespace police:
+ commit 48174b2bcc319e4542aefd0cc3aae02c4083784e
* There's always one or, in this case, two.
docs: python bindings howto.
+ commit 6aec7d6e4a5173f54a079719020704a0098b8f0a
* Updated official doc (the org-mode file) with the instructions on
importing and exporting both public and secret keys.
python bindings examples.
+ commit a7ccdc51efd8c199b902eb942e9db7b3549e721f
* Added a secret key export variant which saves output as both GPG
binary and ASCII armoured, plus saves in $GNUPGHOME and uses
multiple methods of determining what that location is.
python bindings examples.
+ commit 7fc7e80e54235c558051cbf72b51dd60b4ca485e
* Added a key import variant which accesses the SKS keyservers in a
RESTful fashion and then imports or attempts to import the response.
python bindings examples: three export scripts.
+ commit 0d163a7d121eacacc5f6da11a3dee3548f98f124
* Example of default exporting keys.
* Example of exporting minimised keys.
* Example of exporting secret keys to a file with correct permissions.
python bindings: import example.
+ commit 4251cae34da0d825a29f509ac828f7ecb90c1752
* Added an example script for importing a key from a file (either
ASCII armoured or not).
python bindings: export secret keys.
+ commit a5b91b21f561d7b13ddcb62fca3749ed92ea8720
* The holy grail: a function to export secret keys.
* GPGME will still invoke pinentry and gpg-agent as usual to authorise
the export.
* Mostly similar to the two previous export functions for public keys
except that it will return None if the result had a length of zero
bytes. Meaning that the difference between the specified pattern
(if any) not matching available keys and an incorrect passphrase is
not able to be determined from this function (or the underlying one
for that matter).
python bindings: export public keys.
+ commit 7faef33d13fa8efce152ca7aa6e9d39030c1cf08
* Updated key_export and key_export_minimal to return None where a
pattern matched no keys in a manner simnilar to the possible result
of key_export_secret.
python bindings: export public keys.
+ commit 89c548efdf46bd7d9e6f0ca34a07efbbf420e821
* Added functions for exporting public keys to gpg.core in both
complete form and in minimised form.
* Rather than letting people need to worry about the export modes we
are simply separating the functions as people would be more familiar
with from the command line usage anyway.
* Functions added for Context are: ctx.key_export_minimal and
ctx.key_export as the default or full export.
2018-06-20 Andre Heinecke <aheinecke@intevation.de>
json: Add file handling for debug output.
+ commit d8beab30c44482fb7a3e445b92cec482792b2ca0
* src/gpgme-json.c (main): Add possibilty to set log file.
2018-06-19 Andre Heinecke <aheinecke@intevation.de>
Prepare build system for gpgme-js and dist it.
+ commit d27703ea4f0eed950cddf0157dc78bcb5d8d1c65
* configure.ac: Add js as language.
* lang/Makefile.am: Add js as dist language.
* lang/js/BrowserTestExtension/Makefile.am,
lang/js/DemoExtension/Makefile.am,
lang/js/Makefile.am,
lang/js/src/Makefile.am: Populate EXTRA_DIST variables.
2018-06-17 Ben McGinnes <ben@adversary.org>
python bindings: core import statements.
+ commit 19c5267f868aa41e73752ac1c76ec7ae1efe07b8
* Fixed the bit I broke while fixing the PEP8 compliance issues.
python bindings: core — PEP8 compliance.
+ commit a5b24ae46c81d3abd3bb18bf0390cab6ebb2bd77
* Fixed most of the PEP8 errors in core.py
* Those remaining may need more than little edits and are a bit
strange (too clearly the result of a programmer who has spent far
too much time dealing with Lisp so that for Python it looks
... strange).
python bindings: core - key import.
+ commit 5a80e755008bbb3f4c7f91ffccd38f26cd8b3960
* Wrapped the key import function in the try/exception statements
needed to catch at least the most likely unsuccessful import attempt
errors.
* Mostly draws on the file error and no data import statuses for
errors, with a couple of exceptions.
python bindings: core key import.
+ commit 0e762608ef5a598030b8d0e56261a830e1b7b724
* The foundation of a pythonic key import function authored by Jacob
Adams.
* A unit testing script for the same function originally authored by
Tobias Mueller
* Added DCO reference for Jacob Adams to the GPGME AUTHORS file.
* Additional details regarding this patch are available here:
https://dev.gnupg.org/T4001
2018-06-10 Ben McGinnes <ben@adversary.org>
script: groups.py.
+ commit 92cd060f5e2f4fdbfbe4812ebe8ef57e82e1609f
* Added check for if it is run on a Windows system so that the correct
binary filename is invoked.
2018-06-08 Andre Heinecke <aheinecke@intevation.de>
cpp: Add proper gpgme_op_createkey.
+ commit 8dff414e170e4df8ea661028c4ac1588311ca26e
* lang/cpp/src/context.cpp, lang/cpp/src/context.h
(Context::createKeyEx): New.
json: Return fingerprint as createkey result.
+ commit 54146d90dd5518c24c30e6d2ebeb7f47ed4eb29e
* src/gpgme-json.c (op_createkey): Return fingerprint of new key.
json: Add op_createkey.
+ commit 6c74a59e8855d1cac0d8001ad1b7843d2d15be5e
* src/gpgme-json.c (hlp_createkey, op_createkey): New.
(process_request, hlp_help): Add it.
json: Generalize chunking and getmore.
+ commit af8510fb7f4d5c90cc53f10dcc740f377af73d68
* src/gpgme-json.c (MIN_REPLY_CHUNK_SIZE): Lower value to
new real minimum.
(DEF_REPLY_CHUNK_SIZE): Don't chunk by default.
(pending_data): Remove type and base64.
(make_data_object): Remove chunksize handling as this is now
generic.
(encode_and_chunk): Setup the pending_data buffer for chunking
if required.
(op_getmore): Changed to generically work on a response.
(hlp_getmore): Update accordingly.
(hlp_help): Document chunksize as generic parameter for all commands.
(process_request): Use encode_and_chunk on the response.
(hlp_encrypt, op_encrypt, hlp_decrypt, op_decrypt),
(hlp_verify, op_verify, hlp_sign, op_sign),
(op_keylist, hlp_keylist, hlp_export, op_export): Update accordingly.
2018-06-07 Andre Heinecke <aheinecke@intevation.de>
json: Rework verify_result_to_json.
+ commit e48f4a18f807ee42b31968b84f6ae7811d8d8a45
* src/gpgme-json.c (sigsum_to_json): Add bool repr.
(signature_to_json, verify_result_to_json): Extend and follow better
pattern.
(hlp_decrypt, hlp_verify): Expand doc.
json: Add direct way to query a config option.
+ commit 906ea48df3e178bea3e2c744ddd834b23fe553fb
* src/gpgme-json.c (op_config_opt, hlp_config_opt): New operation.
(process_request, hlp_help): Add it.
json: Add op_config to query gpgconf.
+ commit 7e18c7a07a1e2c58ef4d5ddeed46bcce098bdf6c
* src/gpgme-json.c (op_config, hlp_config): New.
(hlp_help, process_request): Add config.
(conf_arg_to_json, conf_opt_to_json, conf_comp_to_json): New
helpers.
2018-06-07 Ben McGinnes <ben@adversary.org>
examples: python howto.
+ commit a3a08584d6e57c4b2a40d74dc52a7d8c5c11b501
* Uses the groups module to prepare a list of recipients and encrypt
to those.
* The main version (encrypt-to-group.py) tries to check for invalid
recipients, but still falls back to always trust for the second
encryption attempt.
* The gullible version doesn't try pruning the recipient list at all,
it just tries to encrypt and if it fails, switches straight to
always trust.
* The trustno1 version doesn't use the always trust model at all and
only attempts pruning the list of invalid recipients.
2018-06-06 Werner Koch <wk@gnupg.org>
core: Return a better error code on certain decryption failures.
+ commit 2c4c5692472f5870f907c2c3f01870879cb0c34b
* src/decrypt.c (op_data_t): Add field first_status_error.
(parse_status_error): Set it.
(_gpgme_decrypt_status_handler): Prefer an ERROR code over a
NO_SECKEY.
2018-06-05 Werner Koch <wk@gnupg.org>
json: Allow to compile with libgpg-error < 1.28.
+ commit 998fec8a4fbc46315fe6836980954eed402b38c5
* src/cJSON.c: Use gpgrt fucntion only if available.
2018-06-02 Ben McGinnes <ben@adversary.org>
docs: python bindings howto.
+ commit 897423422b9d3b856bfb72fbe1995b91d153a54e
* Another attempt at fixing the org-mode version.
* A proof reader ascertained there were tabs in it instead of whitespace.
* Stripped the lot out and replaced with standard 4 spaces, fixed
every incorrect example ... and it still breaks upon save and/or export.
* Added the reference to the mutt-groups.py script to demonstrate the
groups.py module/code.
Authors: DCO.
+ commit e144a6d70657675e28d43e42b48d879ff9b81d73
* Added mine to the GPGME AUTHORS file. Mainly so I'm doing what I
say myself when about to request another from someone ... ;)
2018-06-01 Andre Heinecke <aheinecke@intevation.de>
cpp: Add gpgme_(get)set_ctx_flag.
+ commit 00b027af86f33782933c6200fe1ffe40e85f4346
* NEWS: Mention API extensions.
* lang/cpp/src/context.cpp, lang/cpp/src/context.h
(Context::setFlag, Context::getFlag): New.
cpp: Add legacy_cipher_nomdc.
+ commit d46768c96082b4fd076506d7d3f0c03e61c59d51
* lang/cpp/src/decryptionresult.cpp, lang/cpp/src/decryptionresult.h
(DecryptionResult::isLegacyCipherNoMDC): New.
2018-06-01 Werner Koch <wk@gnupg.org>
core: New context flag "ignore-mdc-error".
+ commit 662604c5bcb4e03d3c9ecc670d4f320a2418ebb3
* src/context.h (gpgme_context): Add field ignore_mdc_error.
* src/gpgme.c (gpgme_set_ctx_flag, gpgme_get_ctx_flag): Set/get it.
* src/engine-gpg.c (engine_gpg): Add flags.ignore_mdc_error.
(gpg_set_engine_flags): Set it.
(build_argv): Pass option to gpg.
* src/decrypt.c (_gpgme_decrypt_status_handler): Take care of flag.
(gpgme_op_decrypt_result): Clear flag.
(gpgme_op_decrypt): Clear flag.
* src/decrypt-verify.c (gpgme_op_decrypt_verify): Clear flag
(gpgme_op_decrypt_ext): Clear flag.
* tests/run-decrypt.c (show_usage): Add option --ignore-mdc-error.
core: New decryption result flag 'legacy_cipher_nomdc'.
+ commit dd19cabe81b7bf4177ea2ca741f6eb6cd1cab25e
* src/gpgme.h.in (_gpgme_op_decrypt_result): Add flag
legacy_cipher_nomdc.
* src/decrypt.c (parse_status_error): Set this flag.
* tests/run-decrypt.c (print_result): print it.
(main): Print the result even on error.
core: Remove cruft from the engine-gpg code.
+ commit e2aa38b56a991a0da052acfe7566cc7a146d3bb6
* src/engine-gpg.c (read_status): Remove the handling of
GPGME_STATUS_END_STREAM; this was used only by the former experimental
--pipemode of gpg but that is not even anymore invoked here.
(struct engine_gpg): Remove cmd.linked_data and .linked_idx.
(build_argv): Remove code for linked_data.
(gpg_new): Ditto.
(gpg_set_command_handler): Remove arr linked_data.
* src/engine-backend.h (engine_ops): Remove arg data from
set_command_handler.
* src/engine.c (_gpgme_engine_set_command_handler): Remove arg
linked_data and adjust all callers.
core: Minor cleanup in engine-gpg and -gpgsm.
+ commit 2219fc19d58ae1071493de92093b711f3c71454a
* src/engine-gpg.c: Remove errno.h.
(build_argv): Use gpg_error_from_syserror instead of ERRNO.
* src/engine-gpgsm.c: Remove errno.h.
(status_handler): Remove check for EINTR; gpgme_data_write already
handles EINTR.
2018-05-29 Andre Heinecke <aheinecke@intevation.de>
cpp: Add gpgme_data_rewind to cpp API.
+ commit 618aa7f08db41911f25632d9fba23bca80908ebe
* lang/cpp/src/data.h, lang/cpp/src/data.cpp (Data::rewind): New.
* lang/qt/tests/t-various.cpp (testDataRewind): Test it.
2018-05-28 Werner Koch <wk@gnupg.org>
json: Fix compiler warning.
+ commit 77166851f165b1220dcf0116bb61f81e58e4512f
* src/gpgme-json.c (op_version): Mark request as unused.
json: Do not allow to export or delete secret keys.
+ commit 0de991fee05a9733ac29b2fa35643fe4607e56cb
* src/gpgme-json.c (op_export, op_delete): Return GPG_ERR_FORBIDDEN if
"secret" is used.
json: Fix use of get_context.
+ commit 368f2d9db30df16328b34787419de99fe3e1e2f1
* src/gpgme-json.c (create_onetime_context): New.
(release_onetime_context): New.
(op_sign): Use the new fucntions to create a separate context.
(op_encrypt): Use a separate context for key listings.
(create_keylist_patterns): Remove unneeded cast.
2018-05-25 Andre Heinecke <aheinecke@intevation.de>
json: Implement encrypt-sign.
+ commit 7aa00917c7f13294584daba31a506730f0015ef5
* src/gpgme-json.c (op_encrypt): Add optional signing_keys param.
(get_keys, create_keylist_patterns): Add param for json object name.
json: Implement delete command.
+ commit 73dc5e933d609989bd9ec428c89ada95d5eaec8a
* src/gpgme-json.c (op_delete): New.
(hlp_help, process_request): Add it.
json: Implement op_export.
+ commit a1bbe7473a4d0f31d471d6cceb2f7e1382860194
* src/gpgme-json.c (op_export): New.
(hlp_getmore, process_request): Add it.
json: Fix double ctx alloc.
+ commit 897522527d493307d15809a41496f8b76ec4edfe
* src/gpgme-json.c (op_keylist): Only get one ctx.
json: Add guard in create_keylist_patterns.
+ commit 10683b1a913c39238c9871f5aa607334f32467f7
* src/gpgme-json.c (create_keylist_patterns): Guard against
a string ending with a linbreak.
json: Implement import operation.
+ commit 1ff16dad595946af140b324fad2bceca7ddbc378
* src/gpgme-json.c (op_import): New.
(import_status_to_json, import_result_to_json): New.
(hlp_help, process_request): Add import.
json: Improve keylist help.
+ commit fe06929deec6544e2f267937dc5dafe2555bf485
* src/gpgme-json.c (hlp_keylist): Clarify doc about keys parameter.
json: Fix keylist pattern handling.
+ commit 10724e363d6b5b06f51808287ad63e142e419ae6
* src/gpgme-json.c (xfree_array): New helper.
(create_keylist_patterns): Convert keystring to gpgme patterns.
(op_sign, op_keylist): Use it.
json: Add additional commands to help.
+ commit ed20936ce4d5bb066828346b9a06d2dfa8d6afb2
* src/gpgme-json.c (hlp_help): Add additional commands.
json: Refactor signature and ei code.
+ commit aa59f4970ac106ccd17fa9fadfc264d11e4cd347
* src/gpgme-json.c (add_summary_to_object): Changed to:
sigsum_to_json.
(add_signature_to_object): Changed to signature_to_json.
(add_signatures_to_object): Changed to verify_result_to_json.
(add_ei_to_object): Changed to engine_info_to_json.
(op_decrypt, op_verify, op_version): Use new functions.
json: Implement keylist.
+ commit 546e3295eaade073c34364c4ea6ab007532824d8
* src/gpgme-json.c (xjson_AddStringToObject0)
(xjson_AddItemToObject): New helpers.
(sig_notation_to_json, key_sig_to_json, tofu_to_json)
(uid_to_json, subkey_to_json, key_to_json): New
GPGME to JSON functions.
(op_keylist): New.
(process_request): Add op_keylist.
json: Deduplicate input handling code.
+ commit a46c27b32111b1737a405c5be48c0f9ddbbbb353
* gpgme-json.c (get_string_data): New.
(op_verify, op_sign, op_decrypt, op_encrypt): Use it.
2018-05-24 Ben McGinnes <ben@adversary.org>
examples: mutt crypt-hooks generator.
+ commit 321005c12f716814d86e139eb265437bda01380f
* Added a script which demonstrates how the groups module works.
* Script generates Mutt/Neomutt crypt-hooks for every group entry in
gpg.conf, including those entries for multiple keys (Mutt handles
that differently).
docs: python bindings howto.
+ commit 48e946a96d05effd56b34761b98eebb6b2a6fae1
* Fixed the groups.py script so it really does what is described (the
old code had the same result for groups, group_lines and
group_lists).
* Updated the corresponding example in the doc to match.
doc: python bindings howto.
+ commit 9038d30017b2e38b183d093f9b5d46e1f24c70a6
* Fixed org-mode python source indenting.
** Note: nested indented blocks do not indent correctly when exported
to [X]HTML.
2018-05-24 Andre Heinecke <aheinecke@intevation.de>
json: Add code to gpg_error based messages.
+ commit 9fca7c84067c0d4c968c8920dc8ef9449769c5ea
* src/gpgme-json.c (gpg_error_object): New.
(error_object_v): Extend to take error.
json: Implement op_version.
+ commit 61f4532ba979dea1acd8c7de9b7d56bb8ff552d5
* src/gpgme-json.c (op_version): New.
(process_request): Extend for version.
(protocol_to_string, add_ei_to_object): New helpers.
json: Implement op_verify.
+ commit 5fbf81c18b277b30639ba09e8c5d21573b444b00
* src/gpgme-json.c (op_verify): New.
(hlp_help): Add verify.
(process_request): Add verify.
json: Put signature info before data output.
+ commit c679ed24778c997fee72d3613babad8680855882
* src/gpgme-json.c (op_decrypt): Move info before data.
json: Add sign to help.
+ commit a6cd3a1197eb4efea0950394959c252f24475f67
* src/gpgme-json.c (hlp_help): Add sign.
json: Add op_sign.
+ commit 1c0a55a60847563fecf92a383457ab3576aec5d8
* src/gpgme-json.c (op_sign): New.
json: Fix invalid function call.
+ commit b344933e4cb17f2f26c4ed355217428bda8b8c40
* src/gpgme-json.c (add_signatures_to_object): Fix call to
xjson_CreateArray.
json: Print signatures for decrypt/verify.
+ commit 45036c3c4c11f7bd56a00805564108e9377b657e
* gpgme-json.c (xJSON_CreateArray),
(add_summary_to_object, validity_to_string): New helpers.
(add_signature_to_object, add_signatures_to_object)
(add_signatures_object): New.
(op_decrypt): Handle verify_result.
(hlp_help): Mention decrypt.
json: Minor typo fixes.
+ commit fd5e14660a6f4eb1a89d69534e3e435f7fb05f8a
* src/gpgme-json.c: Minor typo fixes.
2018-05-23 Ben McGinnes <ben@adversary.org>
docs and examples: python howto.
+ commit 3a9e6a8e088e233097866bb0560a36cfbbc4470e
* Updated the decryption example code in the HOWTO and the
corresponding decrypt-file.py script to gracefully handle a
decryption failure. This error will always be triggered when GPGME
is used to try to decrypt an old, MDC-less encrypted message or
file.
2018-05-22 Andre Heinecke <aheinecke@intevation.de>
cpp: Expose sessionKey and symkeyAlgo.
+ commit 28e3778ce21069006153bc156a414de6d9347962
* lang/cpp/decryptionresult.cpp, lang/cpp/decryptionresult.h
(DecryptionResult::symkeyAlgo, DecryptionResult::sessionKey): New.
2018-05-17 Andre Heinecke <aheinecke@intevation.de>
core, w32: Add w64 handling for regkeys.
+ commit e04b8142df21a49e6c4a3f8234cc14bfec217222
* src/w32-util.c (_gpgme_get_gpg_path): Use new defines.
(GNUPG_REGKEY_2): x64 aware regkey as used by GnuPG in Gpg4win 2.x
(GNUPG_REGKEY_3): x64 aware regkey as used by GnuPG in Gpg4win 3.x
(_gpgme_get_gpgconf_path): Use new regkeys. Add another fallback.
2018-05-17 Werner Koch <wk@gnupg.org>
core: Always fail if an OpenPG message is not integrity protected.
+ commit 8a0c8c52510d9c2d934f85159f04b666286b1786
* src/decrypt.c (struct op_data_t): Add field not_integrity_protected.
(parse_decryption_info): Set this. Also rename mode to aead_algo for
clarity.
(_gpgme_decrypt_status_handler): Force failure in case of a missing
MDC.
2018-05-09 Werner Koch <wk@gnupg.org>
json: Improve auto-base64 encoding to not split UTF-8 chars.
+ commit e54b110aec3165a32ff9551d0c5227b88aa3dd4f
* src/gpgme-json.c (make_data_object): Switch to Base64 also for UTF-8
characters.
core: Make the status-fd monitor work for all gpgsm commands.
+ commit e2a8a87bf9cfae5d4e8a5953c2a5303b44feb398
* src/engine-gpgsm.c (status_handler): Call the status monitor also
here.
2018-05-05 Ben McGinnes <ben@adversary.org>
python: key expiration datetime stamp tests.
+ commit 46da79e3de99a7b65748994921d6aab73b9974e7
* Changed the expiration date for the generated test key to NYE this
century, rather than the NYE this millennium as originally suggested
in job #3815.
* This covers the lifetimes of current users (except, maybe, some very
healthy millennials) as well as the 32-bit clock end date in 2038;
without falling foul of OpenPGP's 2106 expiration.
2018-05-04 Andre Heinecke <aheinecke@intevation.de>
qt: Respect --disable-gpg-test for tests.
+ commit 26820ba62920acfe2775bce8fc2bc8b3f17b1c10
* lang/qt/Makefile.am: Respect --disable-gpg-test
2018-04-26 Andre Heinecke <aheinecke@intevation.de>
qt: Fix filename handling in cryptoconfig.
+ commit 6b267c56fd6e54fb1c254455c04495534260b547
* src/qgpgmenewcryptoconfig.cpp (QGpgMENewCryptoConfigEntry::urlValue):
Build url from local file.
(QGpgMENewCryptoConfigEntry::setURLValue): Set native seperated
path.
2018-04-20 Maximilian Krambach <maximilian.krambach@intevation.de>
js: encrypt improvement and decrypt method.
+ commit 6ab25e40d904007755c5d999bf66ae264236e745
* Compatibility class gpgme_openpgpjs offers an API that should accept
openpgpjs syntax, throwing errors if a parameter is unexpected/not
implemented
* tried to be more generic in methods
* waiting for multiple answers if 'more' is in the answer
* more consistency checking on sending and receiving
* updated the example extension
2018-04-20 Andre Heinecke <aheinecke@intevation.de>
core: Do not modify args for ignored failures.
+ commit 7706fa2c922f5e02570b01f145ed474e82341042
* src/op-support.c (_gpgme_parse_failure): Ignore gpg-exit failures
before modifying args.
2018-04-20 Werner Koch <wk@gnupg.org>
Release 1.11.1.
+ commit 2e9a14912fb906c17017553ccd0941d172e095ff
* configure.ac: Bump LT version to C31/A20/R1. For cpp to C13/A7/R0.
For qt to: C10/A3/R2.
core: Remove another debug output leftover.
+ commit f779362ffbc7b9334d98f9ee50bfe3c2dc177215
* src/decrypt.c (_gpgme_decrypt_status_handler): Remove log debug.
build: More release creation automation.
+ commit d11bec5ef5e576dab52c1dc7d87758e4f9bf3583
* Makefile.am: Add release and sign-release targets.
2018-04-19 Werner Koch <wk@gnupg.org>
json: Remove the -noinstall flag used during development.
+ commit ab43d85b9a76fb5ba321f4c7280b4d72bfd67f59
* src/Makefile.am (gpgme-json_LDFLAGS): Remove.
2018-04-19 Andre Heinecke <aheinecke@intevation.de>
cpp: Add origin and last_update to UserID.
+ commit d65d6329319bff8cc555999fc92a20e151762a10
* NEWS: Mention it.
* lang/cpp/src/key.cpp, lang/cpp/src/key.h (UserID::lastUpdate),
(UserID::origin): New.
(gpgme_origin_to_pp_origin): New helper.
cpp: Add origin and last_update.
+ commit 0adaf7bafd352f1c3a1e797493780150e3bb0adc
* NEWS: mention interface change.
* lang/cpp/src/key.cpp (Key::origin, Key::lastUpdate): New.
* lang/cpp/src/key.h (Key::Origin): New enum.
2018-04-19 Werner Koch <wk@gnupg.org>
core: Remove leftover debug output.
+ commit b52a91f5a6818db6b3dd7ce86c01b5d5f6700d0d
* src/verify.c (_gpgme_verify_status_handler): Remove debug output.
tests: Fix t-verify test for GnuPG < 2.2.7.
+ commit 3d8e5c07511938a0b30b4626530822338abd9ec0
* tests/gpg/t-verify.c (check_result): Tweak for gnupg < 2.2.7.
2018-04-18 Werner Koch <wk@gnupg.org>
Release 1.11.0.
+ commit 3f55c52b9adc3680c7a9fb0e598598e6ed3a2a5d
* configure.ac: Bump LT version to C31/A20/R0. For cpp to C12/A6/R0.
For qt to: C10/A3/R1.
json: Add stpcpy replacement.
+ commit 8e34a14fe694a8c765973aaa3a8b2a2d2c3ba8b9
* src/gpgme-json.c [!HAVE_STPCPY](_my_stpcpy): New.
core: New convenience constant GPGME_KEYLIST_MODE_LOCATE.
+ commit 55e9a94680370e584fbe5d21161a2cee3fe95744
* src/gpgme.h.in (GPGME_KEYLIST_MODE_LOCATE): New.
json: Add command "decrypt" to gpgme-json.
+ commit e5273fc4431dfb597a2d9cf4af5172572476a2de
* src/gpgme-json.c (make_data_object): Enable auto-detection of
base-64.
(op_encrypt): Support a 'mime' flag.
(op_decrypt): New.
(process_request): Add command "encrypt".
core: Add 'is_mime' flags to the verify and decrypt results.
+ commit 65479fe7b871ad6237d5a8959b73afcc7db784da
* src/op-support.c (_gpgme_parse_plaintext): Add arg r_mime.
* src/decrypt.c (_gpgme_decrypt_status_handler): Ser mime flag.
* src/verify.c (_gpgme_verify_status_handler): Ditto.
* src/gpgme.h.in (gpgme_op_verify_result_t): Append fields 'is_mime'
and '_unused'.
(gpgme_op_decrypt_result_t): New field 'is_mime'. Shrink '_unused'.
* tests/run-decrypt.c (print_result): Print MIME flag.
* tests/run-verify.c (print_result): Ditto.
core: Fix possible compliance mode detection error.
+ commit 23177e4410d05d590c0f2e1675dc645bbb4ad62c
* src/verify.c (_gpgme_verify_status_handler): Insert missing break.
json: Improve help meta command in gpgme-json.
+ commit 49a617f8bbff116884ca5c7238c2e0ea4e26ce59
* src/gpgme-json.c (process_meta_commands): Add ",help CMD".
json: Add command "getmore" to gpgme-json.
+ commit ed1052842df633bc149b14c4cb17859e3c66afe4
* src/gpgme-json.c (MIN_REPLY_CHUNK_SIZE): New const.
(DEF_REPLY_CHUNK_SIZE): New const.
(MAX_REPLY_CHUNK_SIZE): New const.
(pending_data): New var.
(add_base64_to_object): Chnage to take a plain data pointer.
(get_chunksize): New.
(make_data_object): New.
(op_encrypt): Get chunksize and use make_data_object.
(op_getmore): New.
(process_request): Release pending data for all commands but "getmore"
and "help".
json: Add meta command ,read to gpgme-json.
+ commit e69b175e8ed5430b56e2e8f3d68c16a45f0fed17
* src/gpgme-json.c: Include stat.h.
(get_file): New.
(process_meta_commands): Implement ",read".
2018-04-17 Werner Koch <wk@gnupg.org>
core: Extend decryption result with symkey_algo.
+ commit 01435da498af9f7538d7ee810392d7eaa407957e
* src/gpgme.h.in (gpgme_op_decrypt_result_t): Add field 'symkey_algo'.
* src/decrypt.c (release_op_data): Free SYMKEY_ALGO.
(gpgme_op_decrypt_result): Make sure SYMKEY_ALGO is not NULL.
(parse_decryption_info): New.
(_gpgme_decrypt_status_handler): Parse DECRYPTION_INFO status.
* src/conversion.c (_gpgme_cipher_algo_name): New.
(_gpgme_cipher_mode_name): New.
* tests/run-decrypt.c (print_result): Print SYMKEY_ALGO
* src/util.h (_gpgme_map_gnupg_error): Remove obsolete prototype.
core: New keyword --file for OpenPGP recpstring.
+ commit 3589da0500f1c80717e658d103a0cb2751d27b49
* src/engine-gpg.c (append_args_from_recipients_string): Add new
flags.
core: For OpenPGP let offline mode disable dirmngr.
+ commit c143ab692c7fc7cf2ec0aebe40b9479ee15eaba9
* src/engine-gpg.c (struct engine_gpg): New flag.offline.
(gpg_set_engine_flags): Set it. Also fix setting of no_symkey_cache.
(build_argv): Pass --disable-dirmngr in offline mode.
2018-04-17 Tobias Mueller <muelli@cryptobitch.de>
python: Fix crash by leaving struct members intact.
+ commit bbfa7c42337bb619e6af20bf051fe0755ed5a9fd
* lang/python/setup.py.in: Copy gpgme.h instead of parsing it.
2018-04-17 Werner Koch <wk@gnupg.org>
core: Allow for --hidden keyword in OpenPGP recpstrings.
+ commit 4bba3b8e2c350b8ff0d562ec63cc03a096448d84
* src/engine-gpg.c (append_args_from_recipients_string): Add special
keywords.
core: New encryption flag GPGME_ENCRYPT_WANT_ADDRESS.
+ commit 86efba2be270d2cdd0bc66c9d3fe190495b7af2f
* src/gpgme.h.in (GPGME_ENCRYPT_WANT_ADDRESS): New flag.
* src/engine-gpg.c (add_arg_recipient): New.
(add_arg_recipient_string): New.
(append_args_from_recipients): Call new helper function.
(append_args_from_recipients_string): Ditto.
* src/gpgme-json.c (op_encrypt): Add flag "want-address".
core: Add extended versions of the encrypt functions.
+ commit a1f76b3b54b75a150fe272b804d85ffd40a507a6
* src/gpgme.h.in (gpgme_op_encrypt_ext_start) New.
(gpgme_op_encrypt_ext): New.
(gpgme_op_encrypt_sign_ext_start): New.
(gpgme_op_encrypt_sign_ext): New.
* src/libgpgme.vers, tests/run-encrypt.c: Add them.
* src/encrypt.c (encrypt_start): Add arg recpstring.
(gpgme_op_encrypt): Factor code out to ...
(gpgme_op_encrypt_ext): new function with new arg recpstring.
(gpgme_op_encrypt_start): Factor code out to ...
(gpgme_op_encrypt_ext_start): new function with new arg recpstring.
* src/encrypt-sign.c (encrypt_sign_start): Add arg recpstring.
(gpgme_op_encrypt_sign): Factor code out to ...
(gpgme_op_encrypt_sign_ext): new function with new arg recpstring.
(gpgme_op_encrypt_sign_start): Factor code out to ...
(gpgme_op_encrypt_sign_ext_start): new function with new arg
recpstring.
* src/engine-backend.h (struct engine_ops): Change fields encrypt and
encrypt_sign.
* src/engine.c (_gpgme_engine_op_encrypt): Add arg recpstring and pass
to engine.
(_gpgme_engine_op_encrypt_sign): Ditto.
* src/engine-gpg.c (append_args_from_recipients_string): New.
(gpg_encrypt): Add arg recpstring and call new function as needed.
(gpg_encrypt_sign): Ditto.
* src/engine-gpgsm.c (set_recipients_from_string): New.
(gpgsm_encrypt): Add arg recpstring and call new function as needed.
* src/engine-uiserver.c (set_recipients_from_string): New.
(uiserver_encrypt): Add arg recpstring and call new function as
needed.
* tests/run-encrypt.c (xstrdup): New.
(main): Add option --keystring.
* src/gpgme-json.c (get_keys): Simplify.
(op_encrypt): Modify to make use of the extended encrypt function.
2018-04-12 Werner Koch <wk@gnupg.org>
core: Tweak STATUS_FAILURE handling.
+ commit b99502274ae5efdf6df0d967900ec3d1e64373d7
* src/op-support.c (_gpgme_parse_failure): Ignore failures with
location "gpg-exit".
* tests/gpg/t-verify.c (main): Adjust for the now working checking of
the second key.
core: For a failed verification return the sig's fingerprint.
+ commit 478d1650bbef84958ccce439fac982ef57b16cd0
* src/verify.c (parse_new_sig): Parse the new ERRSIG fpr.
tests: Avoid segv in run-verify due to Policy URLs.
+ commit ee8fad3ea0cbc82f31c86b3483abd8549df62b69
* tests/run-verify.c (print_result): Take care of Policy URLs.
tests: Add another check to gpg/t-verify.
+ commit bdf7cd2e28432cf0fa7e0758acdfee03d7bfd45f
* tests/gpg/t-verify.c (PGM): New. Use it instead of __FILE__.
(test_sig1_plus_unknown_key): New test signature.
(check_result): Allow checking of several signatures.
(main): Check a signature with a know and an unknown key.
core: Add new context flag "no-symkey-cache".
+ commit f7700a016926f0d8e9cb3c0337837deb7fe01079
* src/gpgme.c (gpgme_set_ctx_flag): Set flag.
(gpgme_get_ctx_flag): Get flag.
* src/context.h (struct gpgme_context): Add field no_symkey_cache.
* src/engine-gpg.c (struct engine_gpg): Ditto.
(gpg_set_engine_flags): Set flag.
(build_argv): Pass option --no-symkey-cache to gpg.
* tests/run-decrypt.c (print_result): Fix segv for symmetric messages.
(main): New option --no-symkey-cache.
* tests/run-encrypt.c (main): New option --no-symkey-cache.
2018-04-04 Andre Heinecke <aheinecke@intevation.de>
qt: Add test for resetting config value.
+ commit 5eb261d6028ab2c0ddd9af8e3e1f82e479c6109c
* lang/qt/tests/t-config.cpp (CryptoConfigTest::testDefault): New.
2018-03-29 Werner Koch <wk@gnupg.org>
json: Build only a dummy if libgpg-error is < 1.28.
+ commit 60d7a1e8f625ea0db455bff989534dd52f0650c7
2018-03-29 Ben McGinnes <ben@adversary.org>
example: revoke UID.
+ commit 3b91f6af378ccc37dcf8924cbc157894c35b5192
* Script to revoke a UID on an existing key.
docs: python bindings howto.
+ commit d65864989c0560b5f51cb8d05d9ea9f1957b453e
* Added section on revoking UIDs.
example: key signing.
+ commit 56bbfd39acea90eb87a28b11a515b0314cdda54c
* Added script for signing or certifying keys.
doc: python bindings howto.
+ commit 5a553f5a317e5ad5ab0274d58854df1ecf390e0d
* Fixed a typo.
2018-03-28 Ben McGinnes <ben@adversary.org>
docs python bindings howto.
+ commit 2f507b045909d32bf29d23da04db02b078e5fb9d
* PEP8 compliance: a collection of minor edits across multiple example
code snippets.
example: add user ID.
+ commit 5cd419341807d8ae23fec7bd9bb7025a8a2dcb3c
* Added script to add a UID to an existing key.
2018-03-28 Werner Koch <wk@gnupg.org>
json: Remove the "message" object thingy again.
+ commit 3345a17dda2222e3c1592235e8a1cd9493192777
* src/gpgme-json.c (process_request): Remove 'nm_mode'.
json: Make native messaging work.
+ commit 4b2fa657d195382d14ac99be40b66327e0fc855c
* src/gpgme-json.c (opt_debug): New.
(process_request): Add optional arg nm_mode. In this mode take the
request from a "message" object.
(native_messaging_repl): Add debug output and call process_request
in NM_MODE.
(main): Add option --debug. Parse envvar GPGME_JSON_DEBUG as an
alternative way to enable this. Use a default log file.
2018-03-27 Andre Heinecke <aheinecke@intevation.de>
core: Initialize key return value in gpgme_get_key.
+ commit 7c220e387d511b0cf66f99370759c36b729cc444
* src/keylist.c (gpgme_get_key): Set r_key to NULL.
2018-03-27 Ben McGinnes <ben@adversary.org>
doc: python bindings howto.
+ commit a2eedef630891397f8eccb5bb426a0728588bf41
* Fixed some minor PEP8 compliance issues in the key creation examples.
example: key creation.
+ commit f9159b1d75d3209b1c22bbb0ed4472800b60a522
* Script to generate a new key with encryption subkey taking input
from interactive prompts.
* Will also take a passphrase via pinentry and uses passphrase caching
of five minutes when used in conjunction with the temp homedir
script.
script: temp homedir config.
+ commit 1b5da37a47ceef41545e0b2474738613f36be949
* added passphrase caching of 5 minutes.
2018-03-25 Ben McGinnes <ben@adversary.org>
doc: python bindings howto.
+ commit 5b32efbaf37920b2e99d4bb87cb383b2809b1688
* Testing the addition of a HTML header set in org-mode in order to
had RSS update links for files.
* This should work with any [X]HTML export from current versions of
Org-Mode, but if it also works on website generated pages then it'll
tick off one of the wishlist itmes.
script: temp homedir.
+ commit 40a9dea5d56506400b67b0c11f6e55a1629dc6fe
* Fixed whitespace.
doc: python bindings howto.
+ commit 3b724aae423f2de01812165d54df2a7b524c82f6
* Added a reference to new script which will setup a temporary homedir
for a user.
script: temporary homedir creation.
+ commit dde1aae312958776fab475d6c0cdfa19cc255863
* Script to create a temporary gnupg homedir in the user's directory
for testing or scripting purposes.
* Creates a hidden directory on POSIX systems with the correct
permissions (700).
* Creates a gpg.conf in that directory containing the same
configuration options as used in the "Danger Mouse" example in the
HOWTO with the correct permissions (600).
doc: python bindings howto.
+ commit 22247f658ce2f8e527c26746358cfc2643c4832f
* Fixed the plaintext, result and verify_result references in the
decryption section.
2018-03-23 Ben McGinnes <ben@adversary.org>
doc: python bindings howto.
+ commit e6180f2b36cc8a6c6154e5f3d702324af573132a
* Fixed a minor spelling error and a minor grammatical error.
2018-03-23 Werner Koch <wk@gnupg.org>
core: Need to increase an array in the gpg engine.
+ commit 4763974ef6932c503e35c3d14fe47a66a5323f48
* src/engine-gpg.c (build_argv): Allcate one slot more for ARGV.
json: Use a request origin of "browser".
+ commit e5abf4827aead50437bbdff8cfdd5e9fdc6ed72d
* src/gpgme-json.c (_create_new_context): Set flag.
core: New gpgme_set_ctx_flag "request-origin".
+ commit b9000bc293164ff62efa7e91e5cf6d5fc19d482f
* src/context.h (gpgme_context): Add 'request_origin'.
* src/gpgme.c (gpgme_release): Free that field.
(gpgme_set_ctx_flag, gpgme_get_ctx_flag): Add "request-origin".
* src/engine-backend.h (engine_ops): Add 'set_engine_ops' func ptr and
adjust all users.
* src/engine.c (_gpgme_engine_set_engine_flags): New.
* src/op-support.c (_gpgme_op_reset): Call that func.
* src/engine-gpg.c (struct engine_gpg): Add 'request_origin'.
(gpg_set_engine_flags): New.
(_gpgme_engine_ops_gpg): Hook it.
(build_argv): Use command line option --request-origin.
* src/engine-gpgsm.c (struct engine_gpgsm): Add 'request_origin'.
(gpgsm_set_engine_flags): New.
(_gpgme_engine_ops_gpgsm): Hook it.
(start): Send OPTION "request-origin".
* src/engine-assuan.c (struct engine_llass): Add 'request_origin'.
(gpgsm_set_engine_flags): New.
(_gpgme_engine_ops_assuan): Hook it.
(start): Send OPTION "pretend-request-origin".
build: Allow building with released libgpg-error.
+ commit eee68c1b13fbe21c123f469712817e0c81f16383
* src/gpgme-json.c (add_base64_to_object): Return an error if building
with an older libgpg-error.
json: Finish op:encrypt.
+ commit d83482a1d768fc5afd3aa4836f2fefe5c549d02e
* src/gpgme-json.c (add_base64_to_object): New.
(data_from_base64_string): New.
(op_encrypt): Employ them.
(process_request): Print unformated json.
json: Add a new function to cJSON.
+ commit 6525d78d0a1d303c449762082942e71d3002b9ca
* src/cJSON.c (cJSON_CreateStringConvey): New.
2018-03-22 Ben McGinnes <ben@adversary.org>
doc: python bindings howto.
+ commit 65ed4ac82598734551b87fc89deab3cee010bd37
* Fixed table.
2018-03-21 Ben McGinnes <ben@adversary.org>
doc and examples: python bindings HOWTO.
+ commit 5722148bacab5862b40a027861d64683a0f214ea
* Added GPGME Python bindings HOWTO in Australian/British English.
** en-US "translation" still to be done.
* Added several example scripts comprised of the "Basic Functions"
section of the HOWTO (plus the work-around at the end).
** As these scripts are very basic examples they are released under
both the GPLv2+ and the LGPLv2.1+ (just like GPGME itself).
examples: multi-key selection operations.
+ commit 05e59933056ee8ef8ba7579351a58ed25dd7f754
* Temporarily removing multi-key selection based examples.
* There are a few issues with getting the key selections to play
nicely with gpg.Context().keylist object types.
* Will troubleshoot them separately and restore them when that's
worked out, but I don't want these more complicated examples to
delay merging the HOWTO with master.
example: group encryption.
+ commit 61a988036bd3f0d43f7d55bfa43f5f05bec978c4
* Troubleshooting.
examples: encryption.
+ commit 7ddff71908a85111c8e0da41312197b3b1a77da6
* Fixed two incorrect Context() objects.
example: key selection.
+ commit c6a0395f0a3a57071f0c943f7815f58a02f9d2f3
* Removed extraneous blank line.
example: key selection.
+ commit 0a0d57fd41380cd797d29e11cec8a77c7404e960
* Similar to group-key-selection.py, but does not use an existing
group from gpg.conf; instead takes multiple key IDs, fingerprints or
patterns on the command line and adds them to a keylist object.
example: sign and encrypt to group.
+ commit 0ccc57c9512246d82d46e7732bfb0f95c18ca9d3
* Begins to string together some of the simpler examples to do more
useful things.
* Signs and encrypts a file while encrypting to every key in a group
specified in the gpg.conf file.
2018-03-21 Werner Koch <wk@gnupg.org>
json: Use gpgrt_argparse instead of argsparse.c.
+ commit e14f1f687ff618716ed17e309a0475df95e1c0aa
* src/gpgme-json.c: Remove header argparse.h. Define
GPGRT_ENABLE_ARGPARSE_MACROS.
(interactive_repl): Replace strusage by gpgrt_strusage.
(my_strusage): Add SPDX level.
(main): Switch to gpgrt_argparse stuff but keep very limited
functionality when building with an older libgpg-error.
2018-03-21 Ben McGinnes <ben@adversary.org>
example: group key selection.
+ commit 8b401bfc76eac762553f76faab53c2f4cd117a8d
* Example of preparing a keylist object using an existing group line
from the gpg.conf file.
example groups work around.
+ commit 6c6af9a7b0ae4e7182d669bec282c6edaaa7eaa1
* Updated usage so it only references importing the final list of
lists produced. Trying to use some of the mid-points can have
unpredictable results (this is part of the problem with work
arounds).
example: groups.
+ commit a4e3f827652c59d850b4e5506a92c1ecd190c1bb
* Added a docstring.
example: verify signatures.
+ commit ad6cb4f9b8b97a2bc501c17fc542a84b725dedea
* Added example for verifying detached signatures against the files
they're the signatures for.
example: verify signed file.
+ commit ae2767eb27b6a76284ee4403e575869afe2e80a8
* Added example to verify normal and clearsigned files.
doc: python bindings howto.
+ commit e57388a69f61d14e3df3c842d227fb450c96c807
* Fixed minor error in one of the verification examples.
example: detach sign file.
+ commit ac6a552c37147a000de74f49d1bff34dad52252e
* Added example to make detached signatures of a file with key selection.
example: encrypt-sign-file.py.
+ commit af6cbba18ba5e2bbecce5f8268c146282cd12367
* Adjusted the doc string.
examples: doc strings.
+ commit 6fa2a344282e369e6aca8155bc77dd2c12a29414
* Fixed minor errors in two doc strings.
example: clear signing.
+ commit 1fdd1f306d45f6aeee91c7f016f7c37286ee3b3b
* Added example to clear sign a file with signing key selection.
doc: python bindings howto.
+ commit 1d2746433c9632fc0c7bc10b59280fca15895545
* deconstructed and fixed all three signing methods.
example: sign file.
+ commit 0390ede18696520be9cc1a42f628e23159b7c2eb
* Similar to encrypt file except for signing a file in normal mode.
* Noticed additional changes to be made to the howto to match this,
but they will have to wait due to a power outage (currently running
on battery and a mobile connection, but that won't last).
2018-03-20 Werner Koch <wk@gnupg.org>
json: Implement op:encrypt.
+ commit 6073789a6d3514263404c93fa795a398bfd93d91
core: Do not clobber R_KEY in gpgme_get_key on error.
+ commit 343d3e2232a22d0999e1693f0f95e5e290005829
* src/keylist.c (gpgme_get_key): Assign a value to the return
parameter only on success.
core: Fix ABI regression in recent commit.
+ commit 9e1e6554834d0e803dd0889deaef4f11047c7e47
* src/gpgme.h.in (_gpgme_op_import_result): Move new field
'skipped_v3_keys' to the end.
2018-03-20 Ben McGinnes <ben@adversary.org>
doc: python bindings howto.
+ commit 52e262991f1fdf7da93882c3b22c05537376cf49
* Fixed typos in examples.
example: keycount.
+ commit 96d0395bccbbff91f73c06cb7bd6c131f04b8a9a
* Fixed missing parenthesis.
example: decrypt file.
+ commit 51258975d763c9471859d635e6080c2ec02e8647
* Decrypts a file taking file names as command line parameters.
example: groups work-around.
+ commit 29e918171f352c71a90a16c04d4a3dcafa5db682
* Added groups selection work around code.
* Intended for use as a module to be imported by other scripts,
usually with "from groups import group_lists" or "from groups import
group_lines" or similar.
2018-03-19 Ben McGinnes <ben@adversary.org>
example: encrypt file.
+ commit 7221bb67642eb01a07957d66d0cbcd4ef8aadbf8
* Nested encryption in try/except statement in case recipient key is
untrusted or invalid.
example: sign and encrypt file.
+ commit f3fe47e8fd2e7bc748016befcae494421223368c
* Example to sign and encrypt a file.
* Similar to encrypt-file.py except all keys are considered trusted
and signs with the default key.
* Also encrypts to the default key.
example: encrypt file.
+ commit f0790f224d7af9521efe96e69a8f719fb89a5af2
* Fixed typo in second encryption call.
example: encrypt file.
+ commit 7ab42e79ade89f28507ea42d51148a40b4bfc736
* Example to encrypt a file to a single key.
* Takes key ID and/or fpr as a CLI parameter.
* Takes path and filename as a CLI parameter.
* Encrypts to specified key only, no signing and writes the output in
both ASCII armoured and GPG binary formats with output filenames
based on input filename.
example: python bindings key count.
+ commit cfbdcb7fb3fa438cafba82e4fb8f327df596f98e
* Added script wo count the number of keys in both the public and
secret key stores.
doc: python bindings examples.
+ commit b30ebf89725641018b3b08f77876530f9b983fa2
* Explicitly stated that all this code is released under the GPLv2+
and the LGPLv2.1+.
doc: python bindings example README.
+ commit 8f7672ad1b267f122f647bb5f984734d0ff66a5c
* Added the same license as used with the HOWTO.
* Since these examples are so basic, they'll be dual licensed the same
as GPGME itself (otherwise it would slip too dangerously against the
need for permissive licensing of crypto libraries).
docs: python bindings examples.
+ commit 6950a63e63d60685ddb6f4cbff7b826b8acb5b13
* Added reference to location where all the examples included in the
HOWTO will be available as executable scripts.
* Included a short README file in that location.
example: python bindings encryption.
+ commit 3e0f68fdff1998dae9cb6f8510a3e945a268d1f6
* Since we don't want to encourage accessing the low level functions
(e.g. op_encrypt), but since this example can still be useful to
understand, renaming it and will add new encryption examples to
match the instructions in the HOWTO.
doc: python bindings howto.
+ commit d5f6dec048d3d4d94f1fcdb3f4249cf6e71c4b92
* Slight python-gnupg clarification. See also this thread:
https://lists.gnupg.org/pipermail/gnupg-devel/2018-March/033528.html
doc: python bindings howto.
+ commit 0fb8a5d45c1c77a5928d6e356271da055aa55994
* Adjusted the python-gnupg so the comments regarding insecure
invocation of commands via subprocess (shell=True) were a major
historical issue and not a a current issue.
* Not including Vinay Sajip's requested change to say it is now secure
since no audit of the current code base has been performed and my
last major inspection of that code was around the time I first
ported PyME to Python 3 in 2015.
doc: python bindings todo list.
+ commit bf67cf433fe82924ed40e79785e95403c07cc068
* Checked off several points of howto coverage as completed.
* Reorganised to move S/MIME coverage to its own separate group of tasks.
* Noted only revocation remains for howto completion.
doc: python bindings howto.
+ commit 1779d7b9d6769b2e47f1e90260290e25c8c3aa02
* deconstructing multi-recipient encryption.
doc: python bindings howto.
+ commit 64c5886132aceefc9d9600a3a6dbbbf404b95b81
* Replaced the single encryption methods with one main way (i.e. cut
the low level stuff involving SEEK_SET instructions).
2018-03-18 Ben McGinnes <ben@adversary.org>
doc: python bindings howto.
+ commit 4811ff7b6c8ef97c7d4858ce235e9bf8227f4917
* moved single encrytion examples up to the first ones, pending merge
and major cut.
* This is basically just to make future checks of revisions a little easier.
doc: python bindings howto.
+ commit 82c5af225f2bdf3acc6fc652a96ee61c9b057395
* Stripped decryption example to the bare bones as suggested by Justus.
2018-03-16 Ben McGinnes <ben@adversary.org>
doc: python bindings howto.
+ commit b549f69d0520bb74957b95cec9ea918dba2374f6
* Made the changes suggested by Jakub Wilk on gnupg-devel.
* Still need to make the far more comprehensive changes suggested by Justus.
2018-03-16 Werner Koch <wk@gnupg.org>
json: Add framework for the gpgme-json tool.
+ commit d2b31d8c106423bd0eaa5fffaa39b0983c9ae525
* src/gpgme-json.c: New.
* src/Makefile.am (bin_PROGRAMS): Add gpgme-json.
(gpgme_json_SOURCES, gpgme_json_LDADD): New.
core: Adjust cJSON code for use in GPGME.
+ commit 81c90d0cd0f959fd5e01baed9b4af0ec35ecb85c
* src/cJSON.c: Remove util.h. Use gpgrt alloc functions.
(cJSON_Delete): Do not clobber ERRNO.
(cJSON_AddItemToObject): Return OBJECT or NULL.
(cJSON_AddNullToObject): New.
(cJSON_AddTrueToObject): New.
(cJSON_AddFalseToObject): New.
(cJSON_AddBoolToObject): New.
(cJSON_AddNumberToObject): New.
(cJSON_AddStringToObject): New.
* src/cJSON.h (cJSON__h): Replace macro by cJSON_h for C compliance.
(cJSON_AddNullToObject): Remove macro.
(cJSON_AddTrueToObject): Remove macro.
(cJSON_AddFalseToObject): Remove macro.
(cJSON_AddBoolToObject): Remove macro.
(cJSON_AddNumberToObject): Remove macro.
(cJSON_AddStringToObject): Remove macro.
2018-03-15 Ben McGinnes <ben@adversary.org>
doc: python bindings howto.
+ commit 431897a4c48fe1bc9d37f655097aabaf5b685d11
* Added clarification on why it's not on PyPI.
2018-03-15 Andre Heinecke <aheinecke@intevation.de>
cpp: Expose skipped_v3_keys.
+ commit ad95288d3b3efc38998841add4fe658c84701f98
* lang/cpp/src/importresult.cpp,
lang/cpp/src/importresult.h (ImportResult::numV3KeysSkipped): New.
core: Parse skipped_v3_keys.
+ commit a630a1e3e74c926163864b013cb164b4cd1866fc
* src/gpgme.h.in (gpgme_import_result_t): Extend with skipped_v3_keys.
* src/import.c (gpgme_op_import_result): Extend debug with new field.
(parse_import_res): Parse skipped_v3_keys.
* tests/gpg/t-support.h, tests/run-support.h (print_import_result):
Print skipped_v3_keys.
2018-03-15 Ben McGinnes <ben@adversary.org>
doc: python bindings howto.
+ commit 22e2445beee46ed1e527a98e635153c7cf03786f
* fixed custom_id for decryption so the XHTML validates.
doc: python bindings howto.
+ commit 94a95ac12364989db7f4be333107f3c023551857
* Promoted final encryption example so that it will appear as heading
6.1.3 when exported to HTML or PDF.
doc: python bindings howto.
+ commit 3d0c7a2202c8e9bd4f284fd00069d34b8d3d3d4c
* Fixed a minor typographic error.
* Bumped version number in preparation for merge with master.
* While there are probably a few more things worthy of being added
(mainly how to revoke things), this document is essentially ready
for publication now.
doc: python bindings howto.
+ commit 961aea212ef48914ecbfa169addf951b0854b0b4
* Added key signing.
doc: python bindings howto.
+ commit 7ac65b10837740caf68cdade791b8c5ce4eb1b03
* Added a new user ID for Danger Mouse.
* Removed the empty entry for key preferences since that is handled
through gpg.conf and/or editing the key directly.
doc: python bindings howto.
+ commit 9e3e4a835c64f5d06de821b1fd648af37827ff26
* Spell checking and fixing the few errors.
doc: python bindings howto.
+ commit b02d9d0a7b96b186eb3063d94bde369339181461
* Added an encryption subkey to Danger Mouse's primary key.
doc: python bindings howto.
+ commit 5432e5f9d1dfc02812d0b181f8d88cdf4a2bfbfb
* generated a new primary key for Danger Mouse in an alternative homedir.
doc: python bindings howto.
+ commit 5d1dd2abe5cf787875d12afe46c78c75385d7b31
* Added sections for key generation and key editing.
doc: python bindings howto.
+ commit 1d05e6aa4ea467c8c5926b827cfcfba357d03312
* Added c.get_key instructions and examples.
doc: python bindings howto.
+ commit b35aaef7a3b793b8f6f5b42596c0a6a51e87f78c
* Added text for verifying signatures.
2018-03-14 Ben McGinnes <ben@adversary.org>
doc: python bindings howto.
+ commit 6bc12a0eeb20409770cb8b923d08c18c2b730cb8
* Added 4 signature verification methods and partial text for them.
doc: python bindings howto.
+ commit e5c85fba25de1187949697e2dae0e89345b71e89
* Added description for detached signatures.
doc: python bindings howto.
+ commit ada059b07178147821b1598c935aa70ae45e3e6c
* Fixed multiple sample code examples of writing output to a file.
* Added the description of detached signatures.
2018-03-14 Werner Koch <wk@gnupg.org>
core: Import cJSON code from the payproc project.
+ commit 8eb08b318913644d918002f3195f7ec0e75ae239
* src/cJSON.c: New.
* src/cJSON.h: New.
* src/cJSON.readme: New.
2018-03-14 Ben McGinnes <ben@adversary.org>
doc: python bindings todo.
+ commit ef27f3781a37e264d0eb7d1745eb2c804ec062c4
* minor phrasing fix.
doc: python bindings howto.
+ commit 423fdcd4653cb01f07f2b0e72cfcf49554930f70
* Added recommended method of single encryption with description.
2018-03-13 Ben McGinnes <ben@adversary.org>
doc: python binding howto.
+ commit a71205dc3b58970adf591b4e4553824a33f353db
* Clarified which English dialects this is written in.
* Translating to American can happen *after* it's done.
** The Yank version would probably want to change some of the examples
anyway.
* Began the description for normal/default signing.
doc: python bindings howto.
+ commit a10dcb4f138eb5a21881cdbc4806c25129d4ae4e
* Added a section on key selection.
* Included recommendation for using fingerprint when selecting one
specific key.
* Also included the most ironically amusing example of multiple key
selection in a GPG guide. Hey, it's public data ... (heh).
doc: python bindings howto.
+ commit 952b6042f78017c476452088261af8d352cfa729
* Added explanation of the ascendance of Python 3 over Python 2 in the
guide to the intro.
* Expanded key selection description so people know what not to
include regarding key IDs with this key selection method.
doc: python bindings howto.
+ commit c92da2c7eb148ce9fb06495a8470dd9caf662f9a
* Added key selection for specifying signing key or keys.
doc: python bindings howto.
+ commit e489ddd08af29fdad8db8aa0aec0c314daa3678c
* During the course of working out the updated signature methods,
determined that key selection (including counting) will beed to be
presented before the basic functions.
* Moved "working with keys" up.
doc: python bindings howto.
+ commit f29bda8d7146b4bc0bf73d6e613131545ff86b73
* Signatures have changed as a result of the recent update from Justus.
* Sample code updated.
* Text to follow later.
doc: python bindings howto.
+ commit c27a7a3f994dad0eccee890185582f4350fbf233
* Added text description for the decryption example.
2018-03-12 Ben McGinnes <ben@adversary.org>
doc: python bindings howto.
+ commit f81adeba992a9fd3b5a199e9a2e242a0f53cf639
* Added a miscellaneous work-arounds section at the end.
* Included code in said miscellaneous section for accessing the groups
specified in a gpg.conf file.
* It's a bit ugly since it does require subprocess (but not call,
Popen or shell access and only accesses one command).
doc: python bindings howto.
+ commit 36dfbdffea60c529a6d1e1ff3e507be016b6a0f6
* Fixed a spelling error in the key counting text.
doc: python bindings howto.
+ commit 484e9a6229ac9c80c6be4df638bce711f08a74c6
* updated multi-encryption final example to be complete.
* second example shows most likely method of reading plaintext.
* updated example filenames to stick with running gag
(i.e. secret_plans.txt).
doc: python bindings howto.
+ commit a8f48b6f577d562c25fd0191c0cc2cc8e96078c1
* error corrections.
* multiple typesetting fixes only required due to certain archaic
eccentricities of LaTeX.
* a couple of minor python PEP8 compliance corrections.
doc: python bindings howto.
+ commit 83b1336ceebb86e13a55bbf220df2d750f6b3ec6
* Fixed an error in the encryption try/except statement.
doc: python bindings howto.
+ commit 0e1300ce777dd0c87f31ac8bc49846b9df242df9
* Added a more complicated encryption example with a few variations on
the encryption method to account for untrusted recipient keys,
signing or not signing, including or excluding default keys and so
on.
doc: python bindings howto.
+ commit 7ebc5a357057d01b7ef965521ab68b7cb7e20a8f
* Switched from links to some external docs to using footnotes where
necessary.
* Ideally the howto should be as stand alone as possible.
* Also it makes it difficult to convert to another format for
proof-reading if there are links that the conversion can't find.
2018-03-09 Ben McGinnes <ben@adversary.org>
doc: python bindings HOWTO.
+ commit 172baaf4d3e4ed03a4d3437be9efa3dfe6a847bc
* Added instructions and code to count the number of public and secret
keys available since it was quick and easy.
doc: python TODO list.
+ commit f2c1e8d8d54068a7f072efa178fc30460821eff3
* Slightly tweaked one heading to make it clear it wasn't a duplicate.
doc: python bindings howto.
+ commit 01686463948ac6096dd8579a110c478d3a1f9a83
* Wrote the text description explaining each step in the most basic
encryption operation.
* Will need to include additional examples for encrypting to multiple
recipients using Context().encrypt instead of Context().op_encrypt.
doc: python bindings TODO list.
+ commit 93252df9dc4c9932467814745655350a8cab900e
* Updated to reflect the most recent work on the HOWTO for the Python
bindings.
doc: python bindings howto.
+ commit ab81c2d868bba79fdb8f8d7f576b6bd88c6bdf3c
* Added example for verifying both detached and "in-line" signatures.
2018-03-08 Ben McGinnes <ben@adversary.org>
docs: TODO.
+ commit e846c3daeeb4e7092169cdb7bf4f55e0b105aac3
* Removed WS.
doc: TODO list update.
+ commit 6849924ffbd48ba3f9d32b4a59a02e1d2083fc19
* Closed off a few ancient items and added recommendation to others to
use the dev.gnupg.org site for real bugs/features updates.
* See also this statement on the gnupg-devel list regarding this file:
https://lists.gnupg.org/pipermail/gnupg-devel/2018-March/033499.html
docs: python bindings howto update.
+ commit fa4927146b68dd045903285f1c45fb64deb2e361
* Added all four signing code examples that are most likely to be
used: armoured, clearsigned, detached armoured and detached binary.
* May remove some examples and just discuss the differences, but it
depends on the way the text is filled out.
doc: python bindings howto update.
+ commit c767a4a3590bd8a224d0268746df443942cb28c2
* Added example of decryption.
* included some quick notes for myself regarding aspects to explain
when I flesh out the explanatory text.
doc: Basic operation of the python bindings.
+ commit 75463d589522cba427f9e5a3a408192ffad8bb21
* Added sample code for encrypting some text to a single key.
* Basically I'm just lifting existing production code and changing the
key IDs from mine to "0x12345678DEADBEEF" for these first few
examples.
* I'll fill in the text description after.
* Note: due to my regional location, I might split some tasks into
more commits in order to be sure no work gets lost in case of
emergency (or to put it another way: I know Telstra too well to
trust them).
doc-howto: fundamental aspects of GPGME vs Python.
+ commit a98f2c556fe6e33a9cd38279e64e4b09f05cc675
* Added a section for those pythonistas who are too used to web
programming. Stressed that it's not simply not RESTful, it's not
even REST-like.
* Letting me move on to drawing a very loose parallel between a
session and a context. The differences should become obvious in the
subsequent sections.
doc: Added multiple TODOs for inclusion in the HOWTO.
+ commit e8adab68f8c0cd865ff220f06dfaff7fe183e8a1
* Some instructions to include are fairly obvious; as with encryption,
decryption and signature verification.
* Some are a little less obvious.
* This includes the requests received to specifically include subkey
management (adding and revoking subkeys on a primary key that's
being retained.
* Added the UID equivalents to the list, as well as key selection
matters (and may or may not include something for handling group
lines since that involves wrapping a CLI binary).
* Key control documentation and examples requested by Mike Ingle of
confidantmail.org.
2018-03-07 Ben McGinnes <ben@adversary.org>
GPL compatible license for documentation.
+ commit 47d401d159852ea08e90af21d91bb4b93be9000d
* Added the same, slightly modified GPL based license that is used in
other parts of GnuPG.
HOWTO update.
+ commit 8a76deb11efd7dadfde6e8e7e69fbcd92577982f
* removed one bit of whitespace.
* Marked up references to gpgme.h.
* Fixed one spelling error.
* Removed py2.6 from python search order since even if it is
supported, it shouldn't be encouraged.
GPGME Python bindings HOWTO.
+ commit 5215d58ae2521d81c3db0b45dfbdce01a679acab
* Started work on the GPGME Python bindings HOWTO.
* 1,050 words to begin with at approx. 7.5KB.
* Got as far as installation.
* Includes instruction not to use PyPI for this.
TODO - HOWTO.
+ commit 8f2c0f4534ea2a07f071f360a63e877f60dc52f2
* Added suv-entry for the new HOWTO being started and, since it has
been started, checked it off.
TODO.
+ commit d4778bb23d0817ee6fbcbe4f0ff0ff0429bf3669
* Slightly expanded the list.
copyright fix.
+ commit 3a746d5d46ffd7d332dc24fd6a4d24efc5fc1230
* Made the copyright line a new top level org heading in order to
prevent it getting folded into other tasks which will eventually get
closed (so it doesn't go missing if those items are subsequently
archived).
Nuxed doubles.
+ commit 13d2164cd9f313b409b2210d9e63465681cccc99
* Just because there's a lot of documentation which needs to be added,
doesn't mean it needs to be listed twice. Merged the two lists.
Removed double.
+ commit 1516c56ee4da28eb720bbacb026892393d10b24a
* default.profraw didn't need to be listed twice.
2018-03-04 Ben McGinnes <ben@adversary.org>
IDENTIFY.
+ commit f61d4f585f27c13fabf7a23ad295bdc8bea7c838
* Fixed sp error in docstring.
2018-03-03 Ben McGinnes <ben@adversary.org>
Missed a couple.
+ commit 75f5e6e6672a1bbd16b7680313c0f96796c219bd
* WS indicated 2 custom-ids were missed, now they're set.
TODO DONE.
+ commit b438e5e44c2eaf22549db94141a3ec8731556674
* Marked off a TODO for this clean-up.
TODO.
+ commit 1d910672539686e2e17fd8fa1a894cee92863417
* WS removal
TODO updates.
+ commit 12a87af1df906744a14079ff7ff88e7d60679695
* Updated TODO with tags to make everything appear properly when
exported to HTML or PDF.
* Added a couple more items, mainly to do with docs or future bindings.
* Marked some, but not all as actual TODO items.
* Some items should probably be removed, but haven't been yet.
* Some have probably been completed already.
2018-02-27 Ben McGinnes <ben@adversary.org>
New stuff.
+ commit 85bdca3b2b095afb672f19abbffccd2bcb8bbd0a
* Added the idea for alternative Emacs bindings (to extend the
existing ones, not replace them outright).
* Added a reference to the API Squared part of the project.
TODO the TODO.
+ commit 8047e1374fe6e69e8c4502e58e6522ea86e4bef4
* Added an actual TODO to fix the TODOs.
* Pretty sure I know who will be completing this one ... ;)
TODO ... the TODO.
+ commit 73c51bc9858de2aab25844e7e283a6334038ccc8
* If we're going to use Org, let's actually use Org.
* Added the properties tags for each point.
* Some of thems still need custom ID tags assigned properly.
* Probably ought to make them actual TODOs at some point, but that can
wait until they can be marked as DONE anyway.
* Will add a TODO for some of this stuff ... oh, the irony.
2018-02-27 NIIBE Yutaka <gniibe@fsij.org>
core: Support non-thread-safe getenv.
+ commit 59fe3f26c1ca0fba16f76738cd05aaf80fb735ef
* src/get-env.c (_gpgme_getenv): Use gpgrt_lock_lock
and gpgrt_lock_unlock to protect call of getnev.
2018-02-26 Ben McGinnes <ben@adversary.org>
WS removal.
+ commit c58f61e92226c4a03f216f5d07bdc5479ce8a2d9
* Whitespace removal.
LaTeX headers.
+ commit 6f2e2e0f150d5c6d53de5bc48af137f7864d5fd9
* Set LaTeX headers to enable ligatures and a 12pt font by default.
* Paper size left for regional defaults.
* Using XeLaTeX for easier font control.
* Using default LaTeX font of Latin Main, but that's easy enough to change.
2018-02-19 Ben McGinnes <ben@adversary.org>
Renaming ad infinitum ...
+ commit 272a8e778a959cb24298f488e77fce9bffd23b7a
* Dropped the .txt from the end of the file ...
Text conversion.
+ commit c82b17c6ce490738efb07186532e752e6f70ea07
* Exported from Org Mode to UTF-8 text.
* Removed my name from just under the title.
Title fix.
+ commit ea481d4bb9e6197fbc195187d1362b844e2cba2e
* Fixed title.
Conflict with Phabricator files.
+ commit 1ae3ead2cd854258954e784bf51f03822321aefe
* The developers of Phabricator, the web front-end on dev.gnupg.org
have not implemented renderers for Markdown, Org-Mode or any other
common markdown like language.
* They also refuse to do so.
* Instead they re-invented the wheel and implemented their own version
of Markdown-like thing which is incompatible with everything else.
It is called Remarkup.
* The developers of Phabricator and Remarkup have refused to provide
conversion tools to move files to/from any format to/from Remarkup.
* They expect everyone to learn their new favourite pet project.
* Remarkup may or may not display Org Mode files, but if so then it is
likely to only want to do so as plain text.
* There is an unaffiliated and unofficial project to convert Github
Markdown to Remarkup via Pandoc. This might be adapted for our use,
but requires testing.
* Until then exporting from Org Mode to UTF-8 text is likely the least
worst plan.
* Which means renaming this file to README.org first.
Schizophrenic file types.
+ commit fe4f3edd70949329cb992dd963de2de3c86dcd81
* Removed Markdown style heading underlining.
* Removed in-line file type declaration (which is not correctly parsed
by the web interface on dev.gnupg.org).
2018-02-16 Andre Heinecke <aheinecke@intevation.de>
cpp: Add shorthand for key locate.
+ commit 7f9d5c6cd204bfd84ea477b284df795b1dadb1af
* lang/cpp/src/key.cpp (Key::locate): New static helper.
* lang/cpp/src/key.h: Update accordingly.
2018-02-16 Ben McGinnes <ben@adversary.org>
History path.
+ commit fb16eaa685fe488f12f4df9b59d1f3689c813034
* Fixed a typo in a filepath reference.
* Moved conjecture regarding the first version of Python used to a
footnote.
2018-02-15 Ben McGinnes <ben@adversary.org>
LaTeX margins.
+ commit 6f15d821404742ac2683f54ca4102ee4aaedacf2
* Added LaTeX header for 1 inch margins in the quite likely event that
all PDF output ultimately uses LaTeX.
TODO Documentation.
+ commit 235d899a5fc24cdf9c856adbc021a69c43985c99
* Checked off the decision to stick with Org Mode.
TODO.
+ commit 40da5022922172ed898172956a8ccf5622e5638d
* Beginning to turn the first part of this into something kind of like
an actual TODO list as Org Mode uses it (maybe).
2018-02-15 NIIBE Yutaka <gniibe@fsij.org>
tests: Fix previous commit.
+ commit 3224d7f0ea83a3c2baaa9f97846c4a5b392d2c59
tests: More Makefile portability.
+ commit ba6e610baa138ba9b43be303df2c5981dd04de5a
* tests/gpg/Makefile.am: Invoke GPG with TESTS_ENVIRONMENT.
tests: Makefile portability.
+ commit b5ec21b9baf017b4cee88c9ef3cc1a638547cd20
* tests/gpg/Makefile.am: Don't use "export" directive.
* tests/gpgsm/Makefile.am: Ditto.
* lang/qt/tests/Makefile.am: Ditto.
* lang/python/tests/Makefile.am: Ditto.
build: More Makefile fix.
+ commit c9a351f5af289c8f6919854c40f235c781b76ec7
* lang/python/tests/Makefile.am: Avoid target with '/'.
2018-02-14 Ben McGinnes <ben@adversary.org>
Short History.
+ commit 3c3b149996036e7ff4cc4c77ef2d97062d880409
* Fixed or updated the most fundamental errors.
* Also included some details on which modules are available on PyPI,
as well as what happened to the PyME commit log.
Subsectioned history.
+ commit 7c662d22a8f7d2e6ad6532014f2ecc1769de16fb
* Split the main parts down into subsections.
* Still need to cull the incorrect stuff towards the end and add more
recent changes.
History.
+ commit a1bc710c5fb7a7d2253434c1443e33e019020a55
* Reshaping the history file to fit Org Mode's structuring for docs.
* Also said history needs to be a bit more clear (it was kind of
unfinished).
TODO.
+ commit fccd2ea3871f5d63fb038db0733a34f9c5d550c3
* Updated TODO.
* The entirety of the old TODO has been replaced with either more
relevant tasks or goals for the examples and a more measured
approach to the docs and why, in this project, Org Mode trumps reST,
even though it's Python through and through.
TODO.
+ commit 487ed9337e8e07d1c63e53b785cc39e3bd35ff6e
* Removed reST version of file.
TODO.
+ commit c4fa4216199b16c1f169725c0a1e0a40764b1ebb
* Converted document from reST to org-mode.
Short History.
+ commit 1d48b04cfb3d1de654f3995578e9434a6b7b2fed
* Removed reST version.
Short History.
+ commit d86fd7c54c462ef23c70370624e07fcc1bc15121
* Converted document from reST to org-mode.
House keeping.
+ commit 1b5719cd57d80dcd9577141491a0860912e74cd4
* Added a bunch of things to .gitignore that might otherwise creep in
during Python development.
* This really should be merged ASAP. You'll thank me later ...
2018-02-14 NIIBE Yutaka <gniibe@fsij.org>
build: Fix Makefiles for portability.
+ commit f1d8a7975b0a166f55aef06eb25d50230781b96f
* tests/gpg/Makefile.am: Don't allow target with '/'.
* tests/gpgsm/Makefile.am: Ditto.
2018-02-13 Andre Heinecke <aheinecke@intevation.de>
configure: Fix mingw check for getenv.
+ commit 5ec890b9c76db0f23cc396108ff6f1fe658855a8
* configure.ac: have_thread_safe_getenv=yes with have_w32_system.
2018-02-13 NIIBE Yutaka <gniibe@fsij.org>
configure: MinGW has thread-safe getenv.
+ commit 77ca9cc2db2c6da303b9224a931679a325ebda1e
* configure.ac: have_thread_safe_getenv=yes with have_w64_system.
2018-02-09 Andre Heinecke <aheinecke@intevation.de>
cpp: Add SpawnShowWindow flag.
+ commit 7e27a0ff64626026521dc5877b278794cea72e61
* lang/cpp/src/context.h (SpawnShowWindow): New.
core, w32: Enable spawning GUI applications.
+ commit 201db83a7f1b7759173b6e9f0a844caef4da6cce
* src/engine-spawn.c (engspawn_start): Translate spawn flag
to IOSPAWN flag.
* src/gpgme-w32spawn.c (my_spawn): Handle the new flag.
* src/gpgme.h.in (GPGME_SPAWN_SHOW_WINDOW): New.
* src/priv-io.h (IOSPAWN_FLAG_SHOW_WINDOW): New.
core, w32: Fix flags passing to gpgme-w32-spawn.
+ commit f10605ffb5cc9d457c3e432918fdfbfaf3d04185
* src/w32-io.c (_gpgme_io_spawn): Don't hardcode flags value.
cpp: Add conveniance Data::toString.
+ commit 5a5b0d4996c17bfbc69b90f89fec23732f92813a
* lang/cpp/src/data.h, lang/cpp/src/data.cpp: Add Data::toString.
2018-01-30 NIIBE Yutaka <gniibe@fsij.org>
Fix for BSD Make.
+ commit 59fcabbdf537b2745ef0c3cae908b21970a5b39b
* tests/gpg/Makefile.am, tests/gpgsm/Makefile.am: Remove ./.
2018-01-29 NIIBE Yutaka <gniibe@fsij.org>
Fix compile error message.
+ commit bbb5e70e7e8598978b6c61b13ba77705ff86e469
* src/get-env.c (_gpgme_getenv): Fix error message.
tests: Fix for NetBSD.
+ commit 58130b97f6582455fd355ac58ae3182a28812cfc
* tests/gpg/pinentry: Use /bin/sh instead of Bash.
core: Implement _gpgme_getenv for NetBSD.
+ commit 37d62e9d0f685c257fdb5f303e60ff01f8a36a2f
* src/get-env.c [HAVE_GETENV_R] (_gpgme_getenv): New.
2017-12-12 Werner Koch <wk@gnupg.org>
Release 1.10.0.
+ commit 6a42eb5f3809d5eb3767667c190b395d028886e7
Require libgpg-error 1.24 and libassuan 2.4.2.
+ commit d4d04d6c0432b032f6ea23c8517fd6a5f623bb67
* src/util.h (GPG_ERR_FALSE): Remove due to newer libgpg-error.
2017-12-11 Andre Heinecke <aheinecke@intevation.de>
qt: Don't use QDateTime::toSecsSinceEpoch.
+ commit b61d0fbb74f04408dfe8637c719b97217e061a3c
* lang/qt/src/qgpgmequickjob.cpp (addSubkeyWorker)
(createWorker): Use toMSecsSinceEpoch instead toSecsSinceEpoch.
2017-12-11 Werner Koch <wk@gnupg.org>
core,w32: Fix popping up of console windows due to gpgconf.
+ commit 0a567a94d94cd93c5d88f5db802925c95f0974d0
* src/gpgme-w32spawn.c (my_spawn): Create w/o DETACHED_PROCESS.
2017-12-07 Andre Heinecke <aheinecke@intevation.de>
cpp: Fix handling of lsig promotion.
+ commit 1458adaea4acdcf7ebbead6668476fce92db5af8
* src/gpgsignkeyeditinteractor.cpp (SignKeyState): Add second
CONFIRM state.
(makeTable): Properly handle local_promote_okay.
(action): Handle CONFIRM2.
tests: Print userid signatures in run-keylist.
+ commit 5ba1cbdf39efd90c7987bfc2bc030b6504e70076
* tests/run-keylist.c (main): Print UID signatures if there
are any.
2017-12-04 Werner Koch <wk@gnupg.org>
core: Also check for a failed selftest in gpgm_data_new.
+ commit 0c1244a2b7e30ab0610ae70166e1b5d0219782c3
* src/data.c (_gpgme_data_new): Check for failed selftest.
* tests/run-support.h (make_filename): Print a message on mallooc
failure.
(init_gpgme_basic): New.
* tests/run-identify.c (main): Call init_gpgme_basic becuase we do not
need to setup a protocol.
* tests/t-data.c: Define PGM and include run-support.h.
(make_filename): Remove.
(main): Call init_gpgme_basic.
2017-12-04 Tobias Mueller <muelli@cryptobitch.de>
python: Default whence argument for Data() to SEEK_SET.
+ commit 3cf9aedc92b6c65d2cb34037e52b9a299637d03b
* lang/python/gpgme.i: copied signature from gpgme.h and defaulted the
value to SEEK_SET.
* lang/python/tests/t-data.py: Added a test for no second argument
2017-12-01 Andre Heinecke <aheinecke@intevation.de>
qt: Add job for quick commands.
+ commit 7d1ac5d61de3c55bf7ff14997b4b111a0f90c177
* lang/qt/src/qgpgmequickjob.cpp,
lang/qt/src/qgpgmequickjob.h,
lang/qt/src/quickjob.h: New.
* lang/qt/src/Makefile.am,
lang/qt/src/protocol.h,
lang/qt/src/protocol_p.h,
lang/qt/src/job.cpp: Update accordingly.
cpp: Wrap create_key and create_subkey.
+ commit 8e2d6c28a5e923f829b5a26d19d9d897949aa1fe
* lang/cpp/src/context.cpp,
lang/cpp/src/context.h (Context::startCreateKey)
(Context::createKey, Context::createSubkey)
(Context::startCreateSubkey): New.
Fix uid parsing for ldap keyserver.
+ commit 651b3d8207cc7d85699f89fc4c21cb1243453aa8
* src/engine-gpg.c (gpg_keylist_preprocess): Check field count
for uid and add fallback.
2017-11-30 Werner Koch <wk@gnupg.org>
tests: Add missing variable to gpgsm tests Makefile.
+ commit f43016500774ab82f222249202bda6c463aaf63f
* tests/gpgsm/Makefile.am (GPG_AGENT): Set var. It is used later.
2017-11-21 NIIBE Yutaka <gniibe@fsij.org>
tests: Make portability fix.
+ commit c441fb73130f4c117094d7da4de9fe56f886e65d
* lang/python/tests/Makefile.am: Distinguish target and path.
* tests/gpg/Makefile.am: Ditto.
* tests/gpgsm/Makefile.am: Ditto.
2017-11-14 Andre Heinecke <aheinecke@intevation.de>
qt: Fix IODeviceDataProvider with Process.
+ commit 56b27b21d5f8dd95b9d6415c5e98b821774f3093
* lang/qt/src/dataprovider.cpp (blocking_read): Keep
reading if process is not atEnd.
2017-10-12 Daniel Kahn Gillmor <dkg@fifthhorseman.net>
core: use getdents64 syscall on linux instead of getdents.
+ commit 00daac15530eabed5e61d841b2df939c2242667c
* src/posix-io.c (get_max_fds): use getdents64 instead of getdents.
2017-10-04 Werner Koch <wk@gnupg.org>
core: Allow disabling the use of SYS_getdents for Linux.
+ commit 4632adf403611b50be2b4e852a4607070935d0e5
* configure.ac (USE_LINUX_GETDENTS): New ac_define. Add option
--disable-linux-getdents.
* src/posix-io.c: Make use of USE_LINUX_GETDENTS.
2017-10-04 Colin Watson <cjwatson@debian.org>
core: Restore get_max_fds optimization on Linux.
+ commit b5b996b1a142abb90296f5feadf0b5b19c59f738
* src/posix-io.c (get_max_fds): Restore Linux optimization, this time
using open/getdents/close rather than opendir/readdir/closedir.
2017-09-04 Andre Heinecke <aheinecke@intevation.de>
qt: Add test for version info.
+ commit bd5d470cef513b2f459316869b81267cde7a9f13
* lang/qt/tests/t-various.cpp (TestVarious::testVersion): New.
cpp: Fix version info comparison.
+ commit 58d7bcead3394fa80c2a05d0d1e0fb4d9a1048b0
* lang/cpp/src/engineinfo.h (EngineInfo::Version::operator<):
Fix logic.
* lang/cpp/src/engineinfo.h (EngineInfo::Version::operator>):
New.
* NEWS: Mention added API
2017-08-24 Werner Koch <wk@gnupg.org>
core: New context flag "auto-key-retrieve"
+ commit 47f61df0704485b8165c9cf2a27ad57bcd864239
* src/gpgme.c (gpgme_set_ctx_flag, gpgme_get_ctx_flag): New flag
"auto-key-retrieve".
* src/context.h (gpgme_context): New field auto_key_retrieve.
* src/engine-backend.h (struct engine_ops): Add arg auto_key_retrieve
to field 'decrypt'.
* src/engine-gpg.c (gpg_decrypt): Add arg auto_key_retrieve and pass
option --auto-key-retrieve to gpg. Adjust all callers.
(gpg_verify): Ditto.
* src/engine-gpgsm.c (gpgsm_decrypt): Add dummy arg auto_key_retrieve.
* src/engine-uiserver.c (uiserver_decrypt): Ditto.
* tests/run-verify.c (main): Add option --auto-key-retrieve.
core: New public enum gpgme_keyorg_t.
+ commit 9bde9144f0c2d0087799511e9b041dc945a4cfa8
* src/gpgme.h.in (gpgme_keyorg_t): New.
* src/keylist.c (parse_keyorg): New.
(keylist_colon_handler): Set key->ORIGIN.
2017-08-24 Marcus Brinkmann <marcus.brinkmann@ruhr-uni-bochum.de>
gpgconf: Add more comments.
+ commit 91e47d71652bd0f83b51089c343c3c4836bdfa8a
* src/engine-gpgconf.c (gpgconf_config_dir_cb, gpgconf_conf_dir):
Add comments.
2017-08-23 Marcus Brinkmann <marcus.brinkmann@ruhr-uni-bochum.de>
Fix a couple of bugs pointed out by clang compiler warnings.
+ commit bfb3a01a0c55aa327dcab061fa808672362cb09d
* src/engine-gpgconf.c (gpgconf_config_dir_cb): Fix cast.
* src/key.c (_gpgme_key_add_sig): Fix pointer reference.
2017-08-21 Alon Bar-Lev <alon.barlev@gmail.com>
python: Support parallel build in tests.
+ commit 57c12593082e4ad302041269f1c35f2fe7d2fb1a
* lang/python/tests/Makefile.am: Depend xcheck with all which was lost
due to the check hack.
2017-08-21 Justus Winter <justus@g10code.com>
python: Improve keylist test.
+ commit 70c8be9efe8de40bec0f0673589f3c9be7136674
* lang/python/tests/t-keylist.py: Check a keylist matching no keys.
2017-08-16 Marcus Brinkmann <marcus.brinkmann@ruhr-uni-bochum.de>
doc: Add version information.
+ commit b9b08e46934eea9083afb2eaf4bffa23d6c27801
* doc/gpgme.texi (since): New macro. Use it to add version
information to those APIs that are mentioned in the NEWS file.
doc: Clarify import keys operation further.
+ commit 0ee7f4f178284dae153a59be710bc994820369e5
* doc/gpgme.texi (gpgme_op_import_keys): Further clarifications.
gpgconf: Fix some warnings.
+ commit 3244d4daff892d5d3c39e78f4eb0934379beda2c
* tests/gpg/t-gpgconf.c (main): Fix warnings.
* src/engine-gpgconf.c (struct gpgconf_config_dir_s): New struct.
(gpgconf_config_dir_cb, gpgconf_conf_dir) Use it to fix warning.
gpgconf: Fix symbol export.
+ commit 97a1abe72e73f85bbf922fa588d002a226db5459
* gpgme.def: Fix last change.
(gpgme_op_conf_save): Replace duplicate from c&p ...
(gpgme_op_conf_dir): ... with this.
2017-08-15 Marcus Brinkmann <marcus.brinkmann@ruhr-uni-bochum.de>
NEWS: Add missing entry.
+ commit fa3918598de35fef0bf626035d59ea36c53832b9
gpgconf: Add access to --list-dirs for non-default engine.
+ commit 9f24e6c9010e171fd11c5cdac797cb8ce2e501dd
* src/engine-assuan.c (_gpgme_engine_ops_assuan): Add conf_dir.
* src/engine-g13.c (_gpgme_engine_ops_g13): Likewise.
* src/engine-gpg.c (_gpgme_engine_ops_gpg): Likewise.
* src/engine-gpgsm.c (_gpgme_engine_ops_gpgsm): Likewise.
* src/engine-spawn.c (_gpgme_engine_ops_spawn): Likewise.
* src/engine-uiserver.c (_gpgme_engine_ops_uiserver): Likewise.
* src/engine-backend.h (struct engine_ops): Likewise.
* src/engine-gpgconf.c (gpgconf_config_dir_cb, gpgconf_conf_dir):
New functions.
(struct engine_ops): Add gpgconf_conf_dir.
* src/engine.c (_gpgme_engine_op_conf_dir): New function.
* src/engine.h (_gpgme_engine_op_conf_dir): New prototype.
* src/gpgconf.c (gpgme_op_conf_dir): New function.
* src/gpgme.def (gpgme_op_conf_save): New symbol.
* src/gpgme.h.in (gpgme_op_conf_dir): New prototype.
* src/libgpgme.vers (gpgme_op_conf_dir): New symbol.
* tests/gpg/t-gpgconf.c (main): Test gpgme_op_conf_dir.
2017-08-11 Marcus Brinkmann <marcus.brinkmann@ruhr-uni-bochum.de>
g10: Add new delete operations that allow more flags.
+ commit a0cc6e01a8900b34cf231d8b5335ef3f85d01fdf
* NEWS: Document new interfaces.
* doc/gpgme.texi: Document new interfaces.
* src/gpgme.h.in (GPGME_DELETE_ALLOW_SECRET, GPGME_DELETE_FORCE,
gpgme_op_delete_ext_start, gpgme_op_delete_ext): New.
* src/delete.c (delete_start): Change allow_secret argument to flags.
(gpgme_op_delete_ext, gpgme_op_delete_ext_start): New functions.
* src/engine-backend.h (delete): Change allow_secret argument to flags.
* src/engine.c (_gpgme_engine_op_delete): Likewise.
* src/engine.h (_gpgme_engine_op_delete): Likewise (for prototype).
* src/engine-gpgsm.c (gpgsm_delete): Likewise.
* src/engine-gpg.c (gpg_delete): Likewise. Implement GPGME_DELETE_FORCE.
* src/gpgme.def (gpgme_op_delete_ext, gpgme_op_delete_ext_start): New.
* src/libgpgme.vers (gpgme_op_delete_ext, gpgme_op_delete_ext_start): New.
2017-08-10 Marcus Brinkmann <marcus.brinkmann@ruhr-uni-bochum.de>
doc: Clarify import keys operation.
+ commit dfb3ca85680534b3885ab04d3fba4752c5a6f998
* doc/gpgme.texi (gpgme_op_import_start): Fix grammar.
(gpgme_op_import_keys): Clarify some wording and fix result.
* src/import.c (gpgme_op_import_keys): Clarify comment.
doc: Add more tofu documentation.
+ commit 274609baceda3378b21f84c3ae6a44806dad2dba
* doc/gpgme.texi (gpgme_tofu_info_t): Document structure.
(gpgme_sigsum_t): Document GPGME_SIGSUM_TOFU_CONFLICT.
2017-07-27 Andre Heinecke <aheinecke@intevation.de>
core: Fix status parsing for decrypt + verify.
+ commit d3796e4504a2b4f422de17d78f3acfe8dd199c9c
* src/decrypt.c (parse_status_error): Don't modify args.
2017-07-26 Andre Heinecke <aheinecke@intevation.de>
cpp: Fix Key::isDeVs for subkeys.
+ commit c7be41a5f850addceb2a95444bad2a31cdcd1ce5
* lang/cpp/src/key.cpp (Key::isDeVs): Check all subkeys.
2017-07-13 Justus Winter <justus@g10code.com>
tests: Fix distcheck.
+ commit 7fde780cc1773c6d3902d4f49a8d4aadbf3223d4
* tests/start-stop-agent: Remove backup file.
tests: Make agent spawning more robust.
+ commit 9cd2b58dfb2c21cce64520cf4c726859b583d14e
* tests/gpgsm/Makefile.am (gpgsm.conf): Add agent-program directive.
* tests/start-stop-agent: Update agent-program directive.
2017-07-12 Werner Koch <wk@gnupg.org>
tests: Fix printf compiler warning for an error case.
+ commit 46d2e48105e0929ec38dd4106004dd60d941df9a
* tests/gpg/t-keylist.c (main): Cast DIM to int.
core: Return NO_SECKEY error code on decryption.
+ commit ad0c5ab4cd8d3a1b11b37dc137b75a67aa26da37
* src/decrypt.c (op_data_t): Add flag any_no_seckey.
(_gpgme_decrypt_status_handler): Consult that flag.
(_gpgme_decrypt_status_handler): Set that flag.
core: Return CANCELED and BAD_PASSPHRASE error code on decryption.
+ commit d37bc7e025cdc6228da45b2b527e9f3bfef71c71
* src/decrypt.c (op_data_t): Add field pkdecrypt_failed.
(_gpgme_decrypt_status_handler): Consult new field.
(parse_status_error): Handle some error codes.
core: Simplify parsing of STATUS_ERROR in decrypt.c.
+ commit 87703dbb86ac8fd8abd23170f8038ea6e3dbde28
* src/decrypt.c (_gpgme_decrypt_status_handler): Factor some code out
to ...
(parse_status_error): new. Modernize parsing.
2017-07-11 Justus Winter <justus@g10code.com>
python: Improve error handling.
+ commit 1e68f93dc547ae75b921e43db35e3599de92e2cb
* NEWS: Update.
* lang/python/src/core.py (Context.__read__): New helper function.
(Context.encrypt): Attach partial results to exceptions.
(Context.decrypt): Likewise.
(Context.sign): Likewise.
(Context.verify): Likewise.
* lang/python/src/errors.py (GpgError): Move the core of GPGMEError to
this class, add a nicer interface for it. This makes the errors
thrown by this library more uniform, and allows us to track the
underlying error in synthesized high-level errors.
(GPGMEError): Simplify.
(...): Make sure to call the parent classes' constructor in all other
classes.
2017-07-10 Andre Heinecke <aheinecke@intevation.de>
Add isDeVs to ostream operator.
+ commit fe79eb8de3dc780eafb38a0a0a016748e764ff04
* lang/cpp/src/decryptionresult.cpp,
lang/cpp/src/verificationresult.cpp: Extend ostream operator
to include isDeVs.
2017-06-12 Andre Heinecke <aheinecke@intevation.de>
cpp: Fix CMake config library name for GPGME.
+ commit 5c53c702605b8d4458a14e6303cdc13f3b106efa
* lang/cpp/src/GpgmeppConfig.cmake.in.in: The link library
is of course also dynamic.
2017-06-01 Justus Winter <justus@g10code.com>
Add flag 'is_de_vs' to decryption results and signatures.
+ commit 05fa2a9c7764b28fdac35eb72631439df948ca0e
* NEWS: Update.
* lang/cpp/src/decryptionresult.cpp (DecryptionResult::isDeVs): New
function.
* lang/cpp/src/decryptionresult.h (DecryptionResult::isDeVs): New
prototype.
* lang/cpp/src/verificationresult.cpp (Signature::isDeVs): New
function.
* lang/cpp/src/verificationresult.h (Signature::isDeVs): New
prototype.
* lang/python/src/results.py (DecryptResult): Turn field 'is_de_vs'
into a boolean.
(Signature): Likewise.
* src/decrypt.c (_gpgme_decrypt_status_handler): Handle the new
compliance status line.
* src/verify.c (_gpgme_verify_status_handler): Likewise.
* src/gpgme.h.in (gpgme_status_code_t): Add new status codes for the
new status lines.
* src/keylist.c (parse_pub_field18): Move function to 'util.h'.
(keylist_colon_handler): Adapt callsites.
* src/status-table.c (status_table): Add new status lines.
* src/util.h (PARSE_COMPLIANCE_FLAGS): New macro. This used to be
'parse_pub_field18', but turned into a macro to make it polymorphic.
2017-05-18 Justus Winter <justus@g10code.com>
python: Fix build in certain cases.
+ commit 84a203e60b9935bd8536cd2832fbc55d7f011341
* lang/python/setup.py.in: Prepend the Python build dir to the list of
include directories so that it takes precedence over any other include
directory.
2017-05-10 Justus Winter <justus@g10code.com>
tests: Remove remnants of 'check-local'.
+ commit a9b4c0ad0d1085ff76742e44cf0cf926e89d1f4c
* tests/gpgsm/Makefile.am (check-local): Drop rule and the dependency
on it.
python: Fix test environment creation.
+ commit 6b4dd3b929ac23271bfa96edb9dbb142eca0a30f
* lang/python/tests/Makefile.am (pubring-stamp): Do not depend on the
configuration files, this can trigger superfluous rebuilds.
tests: Make sure to kill all previously running daemons.
+ commit a226eca84670ef4e171c3a54e7caefb3a89254a4
* lang/python/tests/Makefile.am: Kill all previously running daemons
before creating the private key store.
* lang/qt/tests/Makefile.am: Likewise.
* tests/gpg/Makefile.am: Likewise.
* tests/gpgsm/Makefile.am: Likewise.
tests: Harmonize test suites.
+ commit 15adff073bb89dc032d8342cfbbdad2850943f52
* lang/python/tests/Makefile.am: Create test environment as part of
'make all'.
* tests/gpg/Makefile.am: Make sure the private keystore is created
first.
* tests/gpgsm/Makefile.am: Create test environment as part of
'make all'. Make sure the private keystore is created
first.
qt: Stop agent on clean.
+ commit 093b5497b7231590ce91ccf73ba64ebc0757f9e9
* lang/qt/tests/Makefile.am (clean-local): Stop agent.
2017-05-10 Andre Heinecke <aheinecke@intevation.de>
qt: Add a missing include <functional>
+ commit 5e27bf98b4c48cf6a239bcc94b7b67515ff339e7
* lang/qt/src/qgpgmenewcryptoconfig.cpp: Include functional.
qt: Undeprecate API that I find useful.
+ commit cc2ef3d07c0d261bb9e8e8c0f2706e1a08e4ec53
* lang/qt/src/decryptjob.h,
lang/qt/src/decryptverifyjob.h,
lang/qt/src/signencryptjob.h,
lang/qt/src/verifydetachedjob.h,
lang/qt/src/verifyopaquejob.h: Undeprecate ByteArray based API.
qt, tests: Don't use internal API.
+ commit b56f398eff4e3e70dea714c3174a5512dd9bcf33
* lang/qt/tests/t-encrypt.cpp, lang/qt/tests/t-tofuinfo.cpp:
Only use exported API.
2017-05-03 Andre Heinecke <aheinecke@intevation.de>
core: Don't split gpgconf strings on comma.
+ commit df4eb611e33dcab7bebf07b13734c7db7ccf40da
* src/engine-gpgconf.c (gpgconf_parse_option): Don't split
strings on comma.
2017-04-25 Andre Heinecke <aheinecke@intevation.de>
qt, cpp: Add additional copyright BSI notes.
+ commit 28734240e2a2ce67b64df55364f35e1648376311
* lang/cpp/Makefile.am,
lang/cpp/src/Makefile.am,
lang/cpp/src/callbacks.cpp,
lang/cpp/src/callbacks.h,
lang/cpp/src/configuration.cpp,
lang/cpp/src/configuration.h,
lang/cpp/src/context_glib.cpp,
lang/cpp/src/context_p.h,
lang/cpp/src/context_qt.cpp,
lang/cpp/src/context_vanilla.cpp,
lang/cpp/src/data_p.h,
lang/cpp/src/decryptionresult.cpp,
lang/cpp/src/decryptionresult.h,
lang/cpp/src/defaultassuantransaction.cpp,
lang/cpp/src/defaultassuantransaction.h,
lang/cpp/src/editinteractor.cpp,
lang/cpp/src/editinteractor.h,
lang/cpp/src/encryptionresult.cpp,
lang/cpp/src/encryptionresult.h,
lang/cpp/src/engineinfo.cpp,
lang/cpp/src/engineinfo.h,
lang/cpp/src/error.h,
lang/cpp/src/eventloopinteractor.cpp,
lang/cpp/src/eventloopinteractor.h,
lang/cpp/src/exception.cpp,
lang/cpp/src/exception.h,
lang/cpp/src/global.h,
lang/cpp/src/gpgadduserideditinteractor.cpp,
lang/cpp/src/gpgadduserideditinteractor.h,
lang/cpp/src/gpgagentgetinfoassuantransaction.cpp,
lang/cpp/src/gpgagentgetinfoassuantransaction.h,
lang/cpp/src/gpgmefw.h,
lang/cpp/src/gpgsetexpirytimeeditinteractor.cpp,
lang/cpp/src/gpgsetexpirytimeeditinteractor.h,
lang/cpp/src/gpgsetownertrusteditinteractor.cpp,
lang/cpp/src/gpgsetownertrusteditinteractor.h,
lang/cpp/src/gpgsignkeyeditinteractor.cpp,
lang/cpp/src/gpgsignkeyeditinteractor.h,
lang/cpp/src/importresult.cpp,
lang/cpp/src/importresult.h,
lang/cpp/src/interfaces/assuantransaction.h,
lang/cpp/src/interfaces/dataprovider.h,
lang/cpp/src/interfaces/passphraseprovider.h,
lang/cpp/src/interfaces/progressprovider.h,
lang/cpp/src/keygenerationresult.cpp,
lang/cpp/src/keygenerationresult.h,
lang/cpp/src/keylistresult.cpp,
lang/cpp/src/keylistresult.h,
lang/cpp/src/notation.h,
lang/cpp/src/result.h,
lang/cpp/src/result_p.h,
lang/cpp/src/scdgetinfoassuantransaction.cpp,
lang/cpp/src/scdgetinfoassuantransaction.h,
lang/cpp/src/signingresult.cpp,
lang/cpp/src/signingresult.h,
lang/cpp/src/trustitem.cpp,
lang/cpp/src/trustitem.h,
lang/cpp/src/util.h,
lang/cpp/src/verificationresult.cpp,
lang/cpp/src/verificationresult.h,
lang/cpp/src/vfsmountresult.cpp,
lang/qt/Makefile.am,
lang/qt/doc/Makefile.am,
lang/qt/src/Makefile.am,
lang/qt/src/defaultkeygenerationjob.h,
lang/qt/tests/Makefile.am: Add missing copyright.
Change copyright from Intevation to BSI.
+ commit 70035834326d0d04a5904ae01bc3757e577facf4
* lang/cpp/src/gpggencardkeyinteractor.cpp,
lang/cpp/src/gpggencardkeyinteractor.h,
lang/cpp/src/gpgmepp_export.h,
lang/cpp/src/swdbresult.cpp,
lang/cpp/src/swdbresult.h,
lang/cpp/src/tofuinfo.cpp,
lang/cpp/src/tofuinfo.h,
lang/qt/src/abstractimportjob.h,
lang/qt/src/adduseridjob.h,
lang/qt/src/changeexpiryjob.h,
lang/qt/src/changeownertrustjob.h,
lang/qt/src/changepasswdjob.h,
lang/qt/src/cryptoconfig.cpp,
lang/qt/src/cryptoconfig.h,
lang/qt/src/dataprovider.cpp,
lang/qt/src/dataprovider.h,
lang/qt/src/decryptjob.h,
lang/qt/src/decryptverifyjob.h,
lang/qt/src/deletejob.h,
lang/qt/src/dn.cpp,
lang/qt/src/dn.h,
lang/qt/src/downloadjob.h,
lang/qt/src/encryptjob.h,
lang/qt/src/exportjob.h,
lang/qt/src/hierarchicalkeylistjob.h,
lang/qt/src/importfromkeyserverjob.h,
lang/qt/src/importjob.h,
lang/qt/src/job.cpp,
lang/qt/src/job.h,
lang/qt/src/keyformailboxjob.h,
lang/qt/src/keygenerationjob.h,
lang/qt/src/keylistjob.h,
lang/qt/src/listallkeysjob.h,
lang/qt/src/multideletejob.h,
lang/qt/src/protocol.h,
lang/qt/src/protocol_p.h,
lang/qt/src/qgpgme_export.h,
lang/qt/src/qgpgmeadduseridjob.cpp,
lang/qt/src/qgpgmeadduseridjob.h,
lang/qt/src/qgpgmebackend.cpp,
lang/qt/src/qgpgmebackend.h,
lang/qt/src/qgpgmechangeexpiryjob.cpp,
lang/qt/src/qgpgmechangeexpiryjob.h,
lang/qt/src/qgpgmechangeownertrustjob.cpp,
lang/qt/src/qgpgmechangeownertrustjob.h,
lang/qt/src/qgpgmechangepasswdjob.cpp,
lang/qt/src/qgpgmechangepasswdjob.h,
lang/qt/src/qgpgmedecryptjob.cpp,
lang/qt/src/qgpgmedecryptjob.h,
lang/qt/src/qgpgmedecryptverifyjob.cpp,
lang/qt/src/qgpgmedecryptverifyjob.h,
lang/qt/src/qgpgmedeletejob.cpp,
lang/qt/src/qgpgmedeletejob.h,
lang/qt/src/qgpgmedownloadjob.cpp,
lang/qt/src/qgpgmedownloadjob.h,
lang/qt/src/qgpgmeencryptjob.cpp,
lang/qt/src/qgpgmeencryptjob.h,
lang/qt/src/qgpgmeexportjob.cpp,
lang/qt/src/qgpgmeexportjob.h,
lang/qt/src/qgpgmeimportfromkeyserverjob.cpp,
lang/qt/src/qgpgmeimportfromkeyserverjob.h,
lang/qt/src/qgpgmeimportjob.cpp,
lang/qt/src/qgpgmeimportjob.h,
lang/qt/src/qgpgmekeyformailboxjob.cpp,
lang/qt/src/qgpgmekeyformailboxjob.h,
lang/qt/src/qgpgmekeygenerationjob.cpp,
lang/qt/src/qgpgmekeygenerationjob.h,
lang/qt/src/qgpgmekeylistjob.cpp,
lang/qt/src/qgpgmekeylistjob.h,
lang/qt/src/qgpgmelistallkeysjob.cpp,
lang/qt/src/qgpgmelistallkeysjob.h,
lang/qt/src/qgpgmenewcryptoconfig.cpp,
lang/qt/src/qgpgmenewcryptoconfig.h,
lang/qt/src/qgpgmerefreshkeysjob.cpp,
lang/qt/src/qgpgmerefreshkeysjob.h,
lang/qt/src/qgpgmesecretkeyexportjob.cpp,
lang/qt/src/qgpgmesecretkeyexportjob.h,
lang/qt/src/qgpgmesignencryptjob.cpp,
lang/qt/src/qgpgmesignencryptjob.h,
lang/qt/src/qgpgmesignjob.cpp,
lang/qt/src/qgpgmesignjob.h,
lang/qt/src/qgpgmesignkeyjob.cpp,
lang/qt/src/qgpgmesignkeyjob.h,
lang/qt/src/qgpgmetofupolicyjob.cpp,
lang/qt/src/qgpgmetofupolicyjob.h,
lang/qt/src/qgpgmeverifydetachedjob.cpp,
lang/qt/src/qgpgmeverifydetachedjob.h,
lang/qt/src/qgpgmeverifyopaquejob.cpp,
lang/qt/src/qgpgmeverifyopaquejob.h,
lang/qt/src/qgpgmewkspublishjob.cpp,
lang/qt/src/qgpgmewkspublishjob.h,
lang/qt/src/refreshkeysjob.h,
lang/qt/src/signencryptjob.h,
lang/qt/src/signjob.h,
lang/qt/src/signkeyjob.h,
lang/qt/src/specialjob.h,
lang/qt/src/threadedjobmixin.cpp,
lang/qt/src/threadedjobmixin.h,
lang/qt/src/tofupolicyjob.h,
lang/qt/src/verifydetachedjob.h,
lang/qt/src/verifyopaquejob.h,
lang/qt/src/wkspublishjob.h,
lang/qt/tests/run-keyformailboxjob.cpp,
lang/qt/tests/t-config.cpp,
lang/qt/tests/t-encrypt.cpp,
lang/qt/tests/t-keylist.cpp,
lang/qt/tests/t-keylocate.cpp,
lang/qt/tests/t-ownertrust.cpp,
lang/qt/tests/t-support.cpp,
lang/qt/tests/t-support.h,
lang/qt/tests/t-tofuinfo.cpp,
lang/qt/tests/t-various.cpp,
lang/qt/tests/t-verify.cpp,
lang/qt/tests/t-wkspublish.cpp,
tests/gpg/t-encrypt-mixed.c,
tests/gpg/t-thread-keylist-verify.c,
tests/gpg/t-thread-keylist.c,
tests/run-decrypt.c: Change Intevation GmbH copyright to BSI.
2017-04-24 Andre Heinecke <aheinecke@intevation.de>
doc: Improve doc on passphrase_cb / pinentry mode.
+ commit 8d61aba1fe0379ba14494f8ae2011ba531554ef4
* doc/gpgme.texi (Passphrase Callback): Mention pinentry_mode and
restrictions.
(Pinentry Mode): Fix wording and clarify versions that need
loopback mode for passphrase_cb to work.
2017-04-24 Justus Winter <justus@g10code.com>
tests: Update encrypted sample files.
+ commit ac28e66f46132ae4a854d04b2f17acd4d55e4296
* tests/gpg/cipher-1.asc: Update file.
* tests/gpg/cipher-2.asc: Likewise.
2017-04-11 Justus Winter <justus@g10code.com>
python: Skip TOFU test if not supported by GnuPG.
+ commit 979d48e823357af9999a2adb34d75adaade8dec2
* lang/python/tests/support.py (have_tofu_support): New function.
* lang/python/tests/t-quick-key-manipulation.py: Skip TOFU test if not
supported by GnuPG.
2017-04-11 Alon Bar-Lev <alon.barlev@gmail.com>
python: use autoconf pre-processor when building via autoconf.
+ commit a827382cafe7f1425455dcc8bf5ef049172eb493
* configure.ac: Add AC_PROG_CPP.
* lang/python/Makefile.am: Set CPP environment for setup.py to use.
python: fix run-tests missing python_libdir.
+ commit d785c053a982bddefd7014dc6856d1af345fe9fb
* lang/python/tests/run-tests.py: Set python_libdir if --python-libdir
is set.
2017-04-10 Justus Winter <justus@g10code.com>
python: Fix distcheck.
+ commit db476e923415f8e458720aaafde7234b802a33ab
* lang/python/Makefile.am (uninstall-local): Explicitly request the
scheme 'posix_prefix'. On Python2.7 the default scheme is
'posix_local', breaking distcheck.
2017-04-10 Alon Bar-Lev <alon.barlev@gmail.com>
python: Support alternatate libdir for tests.
+ commit 3cc90b67fa970e716c8672ec5c5f591fa11ab216
* lang/python/tests/run-tests.py: Add --python-libdir optional
parameter.
python: Read gpg-error.h using the pre-processor.
+ commit 7309ce6f5f7c86570953a141965d4f54cd9ad9a0
* lang/python/setup.py.in: Read gpg-error.h using the pre-processor.
python: Remove unneeded stats copy.
+ commit df8433bffa9e669897243f08edf7845762250e4a
* lang/python/setup.py.in: errors.i, gpgme.h are generated and always
newer than the original.
python: Remove usage of PYTHON_VERSIONS.
+ commit 25e6444b3f4601c7821beab06bc4520deacb007b
* configure.ac: Remove PYTHON_VERSIONS subst.
* lang/python/Makefile.am: Use basename of python as builddir prefix.
* lang/python/tests/run-tests.py: Likewise.
tests: Do not use check-local magic as dependency.
+ commit ebefc6cbf937d14ced65f7ded79c4ba901507d23
* tests/gpg/Makefile.am: Use BUILT_SOURCES instead of check-local
and initial.test.
* lang/qt/tests/Makefile.am: Ditto.
python: support .pydistutils.cfg mode.
+ commit 365c649ad073f2697438dc014160943ae31a1447
* lang/python/setup.py.in: Do not parse arguments.
2017-04-07 Alon Bar-Lev <alon.barlev@gmail.com>
python: simplify build, some fixups.
+ commit 49195c487e6c923f7137f092b982e7d833d98de6
* lang/python/gpg/version.py.in: Rename to lang/python/version.py.in.
configure.ac: Generate version.py.in in lang/python.
* lang/python/MANIFEST.in: Include version.py explicitly.
* lang/python/gpg: Rename to 'src'.
* lang/python/Makefile.am: Do not copy source files, do not use absolute
directories, support lib64 in uninstall, clean also dist directory, use
symlink for gpg src.
* lang/python/setup.py.in: Use builddir, copy sources into builddir,
copy version.py into module.
2017-04-05 Justus Winter <justus@g10code.com>
python: Fix vpath builds, fix distcheck.
+ commit e7d9c0c3d773f826dbd2ed417d04e25c410f3374
* lang/python/gpgme-h-clean.py: Delete file.
* lang/python/MANIFEST.in: Adapt accordingly.
* lang/python/Makefile.am (EXTRA_DIST): Likewise.
(COPY_FILES_GPG): Bring variable back.
(copystamp): Copy files.
(clean-local): Delete copied files.
(install-exec-local): Do not create and install list of installed
files.
(uninstall-local): Instead, create some explicit rules to uninstall
the extension.
* lang/python/setup.py.in: Parse arguments. Locate files either in
the source directory, or in the build base directory. Inline the code
from 'gpgme-h-clean.py'. Copy 'helpers.c', add source directory as
include directory.
2017-04-05 Alon Bar-Lev <alon.barlev@gmail.com>
python: Generate files into build directory.
+ commit 801d7d8c5dd530d26ad6c4bcc94d986e6e022da4
* lang/python/setup.py.in: Generate files within BuildExtFirstHack
adjust build flags at this point instead of global.
* lang/python/Makefile.am: Remove logic of separate source directory per
python version in favor of build directory.
* lang/python/tests/run-tests.py: Adjust build directory location.
2017-04-03 Pietro Cerutti <gahr@gahr.ch>
FreeBSD's closefrom(2) does not return errors.
+ commit 50565982cdd502c3852fcc6f598932bd32b5cdc3
2017-04-03 Igor Gnatenko <ignatenkobrain@fedoraproject.org>
qt: pass fmt to gpgrt_asprintf()
+ commit 5d4f977dac542340c877fdd4b1304fa8f6e058e6
* lang/qt/src/dn.cpp (parse_dn_part): Add fmt argument instead of
using name directly.
GnuPG-Bug-Id: 3023
2017-03-30 Andre Heinecke <aheinecke@intevation.de>
python: Don't treat skipped tests as error.
+ commit f8a9ecc6290ebd73fa36647cdfca285fe4d94a62
* lang/python/tests/run-tests.py (failed): Don't count skipped tests
for the return code.
2017-03-30 Justus Winter <justus@g10code.com>
python: Fix skipping tests if running with GnuPG < 2.1.12.
+ commit 159505a28864399cc5405d9f85f35ab011a3259e
* final.py: Import 'support.py' for the side-effect of checking the
GnuPG version.
* t-data.py: Likewise.
* t-protocol-assuan.py: Likewise.
* t-wrapper.py: Likewise.
* t-callbacks.py: Avoid warning about 'support' being unused.
* t-edit.py: Likewise.
* t-encrypt-sym.py: Likewise.
* t-file-name.py: Likewise.
* t-idiomatic.py: Likewise.
* t-sig-notation.py: Likewise.
* t-trustlist.py: Likewise.
* t-verify.py: Likewise.
* t-wait.py: Likewise.
* t-keylist-from-data.py: Trim unused imports.
2017-03-30 Andre Heinecke <aheinecke@intevation.de>
qt: Handle if gpg does not support tofu in test.
+ commit 2c063a8d60418ee59ae80da221420c6f3fa19abb
* lang/qt/src/t-tofuinfo.cpp (TestTofuInfo::testSupported): Treat
it as unsupported if secret keylisting already fails.
2017-03-29 Alon Bar-Lev <alon.barlev@gmail.com>
python,build: Reinstate prepare target.
+ commit 9786e3a96e6772166f3523e74a748b9db20fae7c
* lang/python/Makefile.am: Fix 'prepare' target.
* lang/python/setup.py.in: Use 'abs_top_builddir' instead of guessing
the path.
2017-03-28 Justus Winter <justus@g10code.com>
tests: Run the threading tests only on UNIX.
+ commit 7e9f7752c992f957ccfde3b274865c633096e3bb
* tests/gpg/Makefile.am (tests_unix): Add 't-thread-keylist' and
't-thread-keylist-verify'.
(c_tests): Drop them here.
tests: Make error message more helpful.
+ commit a13e4abe9463579ef23d1acea39a093abfc6528d
* tests/gpg/t-keylist.c (main): Print number of returned and expected
keys.
2017-03-28 Werner Koch <wk@gnupg.org>
Release 1.9.0.
+ commit aa0390ec3b910bbbc323a15ec3c3351e77785a9a
* configure.ac <c>: Bump LT version to C29/A18/R0.
<cpp>: Bump LT version to C10/A4/R0.
<qt>: Bump LT version to C9/A2/R0.
2017-03-28 Andre Heinecke <aheinecke@intevation.de>
Revert "qt: Disable testEncryptDecryptNowrap"
+ commit a2ccb3172896a90bc27c95964ef94bd7c0924802
This reverts commit 57d60b20f16dd5f1bccbbcaa0a6ed75a554a6414.
2017-03-28 Werner Koch <wk@gnupg.org>
core: Prepare for new key listing data send by gpg.
+ commit 813ae5fa2d712aa9679b791c67c9c1c43d36ffe4
* src/gpgme.h.in (gpgme_user_id_t): New fields 'origin' and
'last_update'.
(gpgme_key_t): New fields 'origin' and 'last_update'.
* src/conversion.c (_gpgme_parse_timestamp_ul): New.
* src/keylist.c (keylist_colon_handler): Parse fields 19 and 20.
* tests/run-keylist.c (main): Print new fields.
2017-03-27 Andre Heinecke <aheinecke@intevation.de>
qt: Disable testEncryptDecryptNowrap.
+ commit 57d60b20f16dd5f1bccbbcaa0a6ed75a554a6414
* lang/qt/tests/t-encrypt.cpp (EncryptTest::testEncryptDecryptNowrap):
Disable test.
2017-03-27 Justus Winter <justus@g10code.com>
python: Skip tests if running with GnuPG < 2.1.12.
+ commit 348da58fe0c3656e6177c98fef6b4c4331326c8e
* lang/python/tests/support.py (assert_gpg_version): Fix error
message. Skip all tests when we use GnuPG older than 2.1.12.
2017-03-24 Andre Heinecke <aheinecke@intevation.de>
cpp: Respect decrypt flags in new functions.
+ commit 18b7906078cf08962c54c1e711cf2d91a24fd4e5
* lang/cpp/src/context.cpp: Respect directly provided flags
in the new decrypt functions.
qt: Add unittest for decrypt unwrap.
+ commit 5493164f8665fabf795f3b34a7084770a38ae940
* lang/qt/tests/t-encrypt.cpp
(EncryptTest::testEncryptDecryptNowrap): New.
cpp: Use gpgme_op_decrypt_ex and add new flags.
+ commit 8ad37ecc297f208d0a63783c1ffae33ad4c3c81a
* lang/cpp/src/context.cpp: New decrypt and decryptVerify functions
that take flags as arguments. Use new variants in old functions.
(Context::setDecryptionFlags): New helper.
(Context::Private::Private): Initialize new member.
* lang/cpp/src/context_p.h (Context::Private::decryptFlags): New.
* lang/cpp/src/context.h (Context::DecryptFlags): New enum.
(Context::EncryptionFlags): Extend for EncryptWrap.
2017-03-24 Werner Koch <wk@gnupg.org>
core: New flags GPGME_DECRYPT_UNWRAP and GPGME_ENCRYPT_WRAP.
+ commit 6ac1f2cdedb085b4ac9372c1e591497e2e618de4
* src/gpgme.h.in (GPGME_ENCRYPT_WRAP): New const.
(gpgme_decrypt_flags_t): New enum.
(GPGME_DECRYPT_VERIFY): New const
(GPGME_DECRYPT_UNWRAP): New const
(gpgme_op_decrypt_ext_start): New func.
(gpgme_op_decrypt_ext): New func.
* src/decrypt-verify.c (gpgme_op_decrypt_ext_start): New.
(gpgme_op_decrypt_ext): New.
(decrypt_verify_start): Add arg FLAGS. Replace call to
engine_op_decrypt_verify by the plain decrypt with the flag set.
(gpgme_op_decrypt_verify_start): Pass the flag.
(gpgme_op_decrypt_verify): Pass the flag.
* src/decrypt.c (decrypt_start): Rename to ...
(_gpgme_decrypt_start): this. Add arg FLAGS. Pass FLAGS to
engine_op_decrypt.
(gpgme_op_decrypt_start): Adjust for chnage pass 0 for FLAG.
(gpgme_op_decrypt_start): Ditto.
* src/engine.c (_gpgme_engine_op_decrypt_verify): Remove.
(_gpgme_engine_op_decrypt): Add arg FLAGS.
* src/gpgme.def, src/libgpgme.vers: Add new functions.
* src/engine-backend.h (struct engine_ops): Remove member
'decrypt_verify'. Add FLAGS to 'decrypt'. Adjust all initialization.
* src/engine-uiserver.c (uiserver_decrypt): Remove.
(uiserver_decrypt_verify): Remove.
(_uiserver_decrypt): Rename to ...
(uiserver_decrypt): this. Replace arg VERIFY by new arg FLAGS.
* src/engine-gpg.c (gpg_decrypt): Support GPGME_DECRYPT_UNWRAP.
(gpg_encrypt): Support GPGME_ENCRYPT_WRAP.
* tests/run-decrypt.c (main): New option --unwrap.
* tests/run-encrypt.c (main): New option --wrap.
2017-03-22 Andre Heinecke <aheinecke@intevation.de>
qt: Add test for Data::toKeys.
+ commit 66c334650bd64fdb72c4bd5975e25b8659d320ec
* lang/qt/tests/t-various.cpp (TestVarious::testKeyFromFile): New.
cpp: Wrap keylist_from_data.
+ commit 8ddb42ada46f00d8393f6c2df7d6b79a4a5878f0
* lang/cpp/data.h, lang/cpp/data.cpp (GpgME::Data::toKeys): New.
qt: Initialize library first in tests.
+ commit 121873b821636052c10d9e0bd885eb9013c52096
* lang/qt/tests/t-support.cpp (QGpgMETest::initTestCase): Initialize
library.
2017-03-22 Justus Winter <justus@g10code.com>
python: Improve Python detection.
+ commit 104635eb503ec764146731888a6975b4329660fd
* m4/python.m4 (_AM_PYTHON_INTERPRETER_LIST): Prefer the generic
'pythonX' over 'pythonX.Y'. This way we select the users preferred
version for both flavors. Prefer 'python' over 'python3' but not over
'python2' so that the algorithm still finds a 'python2' even if
'python' is a Python3.
2017-03-21 Werner Koch <wk@gnupg.org>
core: New API gpgme_op_set_uid_flag.
+ commit 421ddd1e6706046c5062417fd69a87e10c9fc0a9
* src/gpgme.h.in (gpgme_op_set_uid_flag_start): New.
(gpgme_op_set_uid_flag_start): New.
* src/gpgme.def, src/libgpgme.vers: Add them.
* src/genkey.c (addrevuid_start): Change arg revoke to a flag.
(gpgme_op_revuid_start): Pass GENKEY_EXTRAFLAG_REVOKE for the fomer
revoke parameter.
(gpgme_op_revuid): Ditto.
(set_uid_flag): New.
(gpgme_op_set_uid_flag_start): New.
(gpgme_op_set_uid_flag): New.
* src/engine.h (GENKEY_EXTRAFLAG_SETPRIMARY): new.
* src/engine-gpg.c (gpg_adduid): Implement that flag.
* tests/run-genkey.c (main): New command --set-primary.
2017-03-21 Justus Winter <justus@g10code.com>
python: Wrap 'gpgme_op_keylist_from_data_start'.
+ commit f3e8d8a4518de2768692e0b392262d0da6d0fd84
* NEWS: Update.
* lang/python/gpg/core.py (Context.keylist): New keyword argument
'source'. If given, list keys from 'source'.
* lang/python/gpgme.i: Wrap the argument to
'gpgme_op_keylist_from_data_start'.
* lang/python/tests/Makefile.am (py_tests): Add new test.
* lang/python/tests/support.py (EphemeralContext): Do not throw an
error if no agent has been started in the context.
* lang/python/tests/t-keylist-from-data.py: New file.
2017-03-21 Werner Koch <wk@gnupg.org>
core: Extend gpgme_get_dirinfo to return the gpg-wks-client name.
+ commit 55ac5eed9f59081283d34098a9e0ada753d61d59
* src/dirinfo.c (WANT_GPG_WKS_CLIENT_NAME): New const.
(struct dirinfo): New field 'gpg_wks_client_name'.
(get_gpgconf_item): Build it on demand.
(gpgme_get_dirinfo): New value "gpg-wks-client-name" for WHAT.
core: New encryption flag GPGME_ENCRYPT_THROW_KEYIDS.
+ commit fab8b1a166fff7265d8a7a7acbbf5f30d26cc93c
* src/gpgme.h.in (GPGME_ENCRYPT_THROW_KEYIDS): New flag.
* src/engine-gpg.c (gpg_encrypt): Implement flag
(gpg_encrypt_sign): Implement flag.
* tests/run-encrypt.c (main): New option --throw-keyids.
2017-03-21 Andre Heinecke <aheinecke@intevation.de>
Werner Koch <wk@gnupg.org>
core: New public API gpgme_op_keylist_from_data_start.
+ commit 35023f313622fb1b34108dd934e84831c58b81aa
* src/gpgme.h.in: New API gpgme_op_keylist_from_data_start.
* src/libgpgme.vers, src/gpgme.def: Add it.
* src/keylist.c (gpgme_op_keylist_from_data_start): New.
* src/engine-backend.h (engine_ops): Add field 'keylist_data'. Change
all engines to pass NULL for it.
* src/engine.c (_gpgme_engine_op_keylist_data): New.
* src/engine-gpg.c (gpg_keylist_data): New.
(_gpgme_engine_ops_gpg): Register gpg_keylist_data.
* tests/run-keylist.c (main): New option --from-file.
2017-03-20 Werner Koch <wk@gnupg.org>
core,cpp: New key flag 'is_de_vs'.
+ commit ea9686ec71a2dd2225ce2b6d6d4038821d36205f
* src/gpgme.h.in (_gpgme_subkey): New flag is_de_vs.
* tests/run-keylist.c (main): Print that flag.
* src/keylist.c (parse_pub_field18): New.
(keylist_colon_handler): Parse compliance flags.
* lang/cpp/src/key.cpp (Key::isDeVs): New.
(Subkey::isDeVs): New.
* lang/cpp/src/key.h (class Key): New method isDeVs.
(class Subkey): New method isDeVs.
2017-03-20 Justus Winter <justus@g10code.com>
tests: Fix distcheck.
+ commit 392e51dd1181d035c19918222da65d08fdb2ee6d
* tests/start-stop-agent: Do not create 'gpg-agent.conf' if it does
not exist.
python: Fix version check.
+ commit 57e64d019d993fdeb4323def5352f8ecc98c6fd9
* lang/python/tests/support.py (assert_gpg_version): Cope with
non-released versions.
tests: Use 'gpg-agent --allow-loopback-pinentry' if applicable.
+ commit 16b202d9999591b71fb8bb49f6db10ef96d4cbe8
* lang/python/tests/Makefile.am (gpg-agent.conf): Do not hard-code the
option. This breaks gpg-agent from GnuPG 2.0.
* tests/start-stop-agent: Rather, check if the option is supported and
add it to the configuration if it is.
python: Skip tests if GnuPG is too old.
+ commit e1cf8bab319ba1dea41ba5d711dbb66ffd8e6fd6
* lang/python/tests/support.py (assert_gpg_version): New function.
* lang/python/tests/t-callbacks.py: Use the new function to skip the
test if GnuPG is too old.
* lang/python/tests/t-edit.py: Likewise.
* lang/python/tests/t-encrypt-sym.py: Likewise.
* lang/python/tests/t-quick-key-creation.py: Likewise.
* lang/python/tests/t-quick-key-manipulation.py: Likewise.
* lang/python/tests/t-quick-key-signing.py: Likewise.
python: Remove superfluous initialization.
+ commit 4572e8d2ac1d3b45e75ce71265c99e591fbf0e28
* lang/python/tests/support.py (init_gpgme): Remove. This is an
remnant from the c tests. Nowadays, the Python bindings initialize
GPGME automagically.
* lang/python/tests/initial.py: Remove call to 'support.init_gpgme'.
* lang/python/tests/t-callbacks.py: Likewise.
* lang/python/tests/t-decrypt-verify.py: Likewise.
* lang/python/tests/t-decrypt.py: Likewise.
* lang/python/tests/t-edit.py: Likewise.
* lang/python/tests/t-encrypt-large.py: Likewise.
* lang/python/tests/t-encrypt-sign.py: Likewise.
* lang/python/tests/t-encrypt-sym.py: Likewise.
* lang/python/tests/t-encrypt.py: Likewise.
* lang/python/tests/t-export.py: Likewise.
* lang/python/tests/t-file-name.py: Likewise.
* lang/python/tests/t-idiomatic.py: Likewise.
* lang/python/tests/t-import.py: Likewise.
* lang/python/tests/t-keylist.py: Likewise.
* lang/python/tests/t-sig-notation.py: Likewise.
* lang/python/tests/t-sign.py: Likewise.
* lang/python/tests/t-signers.py: Likewise.
* lang/python/tests/t-trustlist.py: Likewise.
* lang/python/tests/t-verify.py: Likewise.
* lang/python/tests/t-wait.py: Likewise.
2017-03-14 Justus Winter <justus@g10code.com>
python: Make error message more helpful.
+ commit 9d6825be092f1590f28b5bab462eeb944d9b800c
* lang/python/tests/run-tests.py: Make the error message shown when we
cannot locate the python module in the build tree more helpful.
python: Make tests more robust.
+ commit ac4849953860547b06a167ca9612c4de369d02b6
* lang/python/tests/support.py (TemporaryDirectory): Always use our
own version even if 'tempfile.TemporaryDirectory' is provided, because
we need to use 'shutil.rmtree(..., ignore_errors=True)' to avoid it
tripping over gpg-agent deleting its own sockets.
python: Improve build system integration.
+ commit a4201035fdc050f337a6b9f520c8ddbb569e2eb4
* lang/python/Makefile.am: Use 'set -e' when chaining shell commands
together in rules.
build: Improve Python detection.
+ commit 6a371663886a7ba6073f385a3ab5f5a03de8e008
* configure.ac: Do not error out too early if we don't find a matching
Python version. We handle this case later.
build: Tune M4 macros for our needs.
+ commit 5189c08af9468cdeb6f16a6ecd0fee53e1e3aa0e
* m4/ax_python_devel.m4: Do not emit 'HAVE_PYTHON'.
* m4/python.m4 (_AM_PYTHON_INTERPRETER_LIST): Add newer Python
versions, drop older ones. Also, sort the list with older versions at
the front, newer and generic versions towards the end. This makes the
algorithm pick the lowest version that meets the version requirement.
build: Add M4 macros for python.
+ commit 067da472f919e78c95a0a01b68e79a8b7dff173b
* m4/python.m4: New file.
2017-03-13 Andre Heinecke <aheinecke@intevation.de>
qt: Add test for DN parser.
+ commit 43aa3eed15dcc4f848915ceabeff35c29c1c57e4
* qt/tests/t-various.cpp (testDN): New.
qt: Use gpgrt_asprintf instead of qstrdup.
+ commit 9d5048d47446450a34cae4f27eb81c02ea5d4afc
* lang/qt/src/dn.cpp (parse_dn_part): Use gpgrt_asprintf instead
of qstrdup.
2017-03-09 Werner Koch <wk@gnupg.org>
core: Fix status error return for gpgsm.
+ commit d2240a2a1819874929bdab820bcbd3bee7f94407
* src/engine-gpgsm.c (gpgsm_assuan_simple_command): Make sure CB_ERR
is returned.
* src/import.c (parse_import_res): Do not return an error for the last
field.
(import_status_handler): Actually return the error from
parse_import_res.
2017-03-02 Justus Winter <justus@g10code.com>
python: Print path of the Python module used during tests.
+ commit 41398779abbcb1ec2d7491e141469a752fc706ff
* lang/python/tests/initial.py: Print path of the Python module used
during tests. Useful to detect if by any mistake the wrong module is
picked up.
2017-03-02 Werner Koch <wk@gnupg.org>
core: Fix minor code style thing.
+ commit ef035f079fb067f207e5477d5ed6c5a68fb41f59
* src/engine-gpg.c (gpg_add_algo_usage_expire): Use double parenthesis
for bit tests.
2017-03-02 Andre Heinecke <aheinecke@intevation.de>
cpp: Add subkey keygrip to API.
+ commit 8071a6b2ca33c2a46ed1d50ae7283241daaafcd3
* lang/cpp/src/key.cpp (Subkey::keyGrip): New.
* lang/cpp/src/key.h: Update accordingly.
2017-03-01 Andre Heinecke <aheinecke@intevation.de>
cpp: Add interactor to generate keys on smartcard.
+ commit d63258066d008de113ed1170f1b0e787a5bdaba1
* lang/cpp/src/editinteractor.cpp (EditInteractor::needsNoResponse):
Handle new states.
* lang/cpp/src/gpggencardkeyinteractor.cpp,
lang/cpp/src/gpggencardkeyinteractor.h: New.
* lang/cpp/src/Makefile.am: Update accordingly.
qt: Allow creation of default keys without name.
+ commit fbafb5474d8898ba1b267f4b4dfbefe39f04e72f
* lang/qt/src/defaultkeygenerationjob.cpp
(DefaultKeyGenerationJob::start): Handle empty name and email.
2017-02-26 Daniel Kahn Gillmor <dkg@fifthhorseman.net>
doc: Correct documentation for recp arg of gpgme_op_encrypt_sign_start.
+ commit 5b49095b89b07591c69827df3973ffabfb3e97b8
* doc/gpgme.texi (gpgme_op_encrypt_sign_start): recp is an array of
gpgme_key_t, not a single element.
2017-02-20 Justus Winter <justus@g10code.com>
python: Fix test.
+ commit a7c6353edab57b67180aa127ec77d9353c2366fb
* lang/python/tests/t-quick-key-manipulation.py: Modify the
configuration file in the ephemeral home directory, not the one used
by all the tests.
2017-02-17 Justus Winter <justus@g10code.com>
python: Support manipulating the TOFU policy.
+ commit 15fbac9e72a4d1bff9a3b9e9822f9175b09fbcd5
* NEWS: Update.
* doc/gpgme.texi: Fix typos.
* lang/python/gpg/constants/__init__.py: Import new files.
* lang/python/gpg/constants/tofu/__init__.py: New file.
* lang/python/gpg/constants/tofu/policy.py: New file.
* lang/python/gpg/core.py (Context.key_tofu_policy): New function.
* lang/python/gpgme.i: Nice reprs for gpgme_tofu_info_t.
* lang/python/setup.py.in: Install new package.
* lang/python/tests/t-quick-key-manipulation.py: Extend test.
python: Support quick key signing.
+ commit 48634e651fcd02431c0518d42ada1f3b402feb2c
* NEWS: Update.
* doc/gpgme.texi (gpgme_op_keysign): Fix the description of the
'expire' argument.
* lang/python/gpg/constants/__init__.py: Import new file.
* lang/python/gpg/constants/keysign.py: New file.
* lang/python/gpg/core.py (Context.key_sign): New function.
* lang/python/tests/Makefile.am (py_tests): Add new test.
* lang/python/tests/t-quick-key-signing.py: New test.
python: Fix teardown of ephemeral contexts.
+ commit de8494b16bc50c60a8438f2cae1f8c88e8949f7a
* lang/python/tests/support.py (EphemeralContext): New function.
* lang/python/tests/t-quick-key-creation.py: Use the new function to
manage ephemeral contexts.
* lang/python/tests/t-quick-key-manipulation.py: Likewise.
* lang/python/tests/t-quick-subkey-creation.py: Likewise.
python: Fix using strings as commands in the assuan protocol.
+ commit 9350168a1eed3f055040d7cc8a9bf4cdf745b23a
* lang/python/gpg/core.py (Context.assuan_transact): Fix testing
whether the command is a string on Python2.
* lang/python/tests/t-protocol-assuan.py: Improve the test to detect
this problem.
2017-02-16 Justus Winter <justus@g10code.com>
python: Support adding and revoking UIDs.
+ commit 7641b7b5f2c9d5b38c60cd9326bcb4810c37dae5
* NEWS: Update.
* lang/python/gpg/core.py (Context.key_add_uid): New function.
(Context.key_revoke_uid): Likewise.
* lang/python/tests/Makefile.am (XTESTS): Add new test.
* lang/python/tests/t-quick-key-manipulation.py: New file.
python: Support quick subkey creation.
+ commit 13bace25e3d8422f93fd24919994be36042fd220
* NEWS: Update.
* lang/python/gpg/core.py (Context.create_subkey): New function.
* lang/python/tests/Makefile.am (XTESTS): Add new test.
* lang/python/tests/t-quick-subkey-creation.py: New file.
python: Support quick key creation.
+ commit 476b97822b169c30cc246c1de2ff94cf89084706
* NEWS: Update.
* lang/python/gpg/constants/__init__.py: Import new file.
* lang/python/gpg/constants/create.py: New file.
* lang/python/gpg/core.py (Context.create_key): New function.
* lang/python/tests/Makefile.am (XTESTS): Add new test.
* lang/python/tests/support.py (TemporaryDirectory): New class.
* lang/python/tests/t-quick-key-creation.py: New file.
python: Fix passphrase callback wrapping.
+ commit 3bdce4aa3ddd4a3f55b24678faf978d61daa8909
* lang/python/helpers.c (pyPassphraseCb): Cope with 'passphrase_info'
being NULL.
python: Fix error handling.
+ commit 048c5f74b61d5e4fa7617ce7c9111c6754bd4409
* lang/python/gpgme.i (typemap gpgme_key_t[]): Set an error if a
non-key element is discovered.
2017-02-15 Justus Winter <justus@g10code.com>
core: Fix expiration time handling when creating keys.
+ commit de708e5934cda380dbc3ae51f587c09041de7562
* NEWS: Update.
* doc/gpgme.texi (gpgme_op_createkey): Clarify the meaning of the
'expire' parameter.
(GPGME_CREATE_NOEXPIRE): Document new flag.
(gpgme_op_createsubkey): Clarify the meaning of the 'expire'
parameter.
* src/engine-gpg.c (gpg_add_algo_usage_expire): Fix handling of the
expiration time.
* src/gpgme.h.in (GPGME_CREATE_NOEXPIRE): New macro.
python: Fix build system integration.
+ commit 27544d0a74267ab6057dc816ea3311bc9149a200
* lang/python/Makefile.am (copystamp): Also copy the setup script, and
link the header files.
(all-local): Use local setup script.
(sdist): Fix Python source distribution creation.
(CLEANFILES): Remove now obsolete files.
(install-exec-local): Use local setup script.
* lang/python/setup.py.in: Adjust relative paths to in-tree files.
python: Update lists of functions returning gpgme_error_t.
+ commit 25f0435a0022a70af77660d72d33f17bec2d4e51
* lang/python/gpg/core.py (Context._errorcheck): Add instructions how
to update the list. Update list.
(Data._errorcheck): Likewise.
(Context.set_engine_info): Simplify.
core: Fix error types.
+ commit 6df6e01ed5a581765d245bf7303cda4497d0eb22
* NEWS: Update.
* src/data.c (gpgme_data_set_flag): Return a 'gpgme_error_t'.
* src/error.c (gpgme_strerror_r): Fix type of first argument.
* src/gpgme.h.in (gpgme_strerror_r): Adapt.
(gpgme_data_set_flag): Likewise.
2017-02-14 Justus Winter <justus@g10code.com>
python: Wrap utility functions.
+ commit 92adc9bbf640eb5d9177d3ba0189e0f6cee4e995
* NEWS: Update.
* lang/python/gpg/core.py (pubkey_algo_string): New function.
(pubkey_algo_name): Add docstring.
(hash_algo_name): Likewise.
(get_protocol_name): Likewise.
(addrspec_from_uid): New function.
* lang/python/gpgme.i (gpgme_pubkey_algo_string): Result must be
freed.
(gpgme_addrspec_from_uid): Likewise.
python: Use the correct function to free buffers.
+ commit 9fc9533c2835ec53c4fd4f822b09e9fec14626d0
* lang/python/gpgme.i (char *): Free using 'gpgme_free'.
python: Add keylist mode parameter.
+ commit fdc4e33dc3f6c84fe9d7bf9795c603ae3cf5f28d
* NEWS: Update.
* lang/python/gpg/core.py (Context.keylist): Add 'mode' parameter.
python: Nicer repr for user ids.
+ commit e17ab84129045512cf60c221ee43aa877507662f
* lang/python/gpgme.i (_gpgme_user_id): Provide a nicer repr() for
user ids.
python: Add convenience functions for the home directory.
+ commit 99b7f4f34dd595579181a696ae976a678fe00d49
* NEWS: Update.
* lang/python/gpg/core.py (Context.__init__): Add 'home_dir' argument.
(__repr__): Include 'home_dir'.
(Context.home_dir): New property.
qt: Make sure to remove the tofu.db on clean.
+ commit 30a603580e0f196c721fa4bd44d24077d9bc06c3
* lang/qt/tests/Makefile.am (CLEANFILES): Add 'tofu.db'.
2017-02-14 Tobias Mueller <muelli@cryptobitch.de>
python: Extend SWIG gpgme_{sub,}key with a __repr__ method.
+ commit 01d5c17587578c729bbbb60f8a65635975e35592
* lang/python/gpgme.i: Added a genericrepr macro and use it for
gpgme_key, gpgme_subkey, and gpgme_key_sig.
python: Remove the -builtin flag for SWIG.
+ commit aa49be1ab80c200ab6b62d33bf5d0f5aa334fc56
* lang/python/setup.py.in: Call SWIG without the builtin flag.
python: Call SWIG_NewPointerObj rather than SWIG_Python_NewPointerObj.
+ commit d35651917097ae2eee7d52396d53d010bc34df19
* lang/python/gpgme.i (pygpgme_wrap_gpgme_data_t): Provide a "self"
variable for SWIG_NewPointerObj and call SWIG_NewPointerObj rather than
SWIG_Python_NewPointerObj.
python: Conditionally provide py3 argument to SWIG.
+ commit d184dbbba8987d9f387feb25791ed891e108dabc
* lang/python/setup.py.in: Only call with -py3 when we run under python3
or higher.
2017-02-13 Justus Winter <justus@g10code.com>
python: Use one copy of the source tree per Python version.
+ commit fe65a26ab584bd70fad45c7c4d44330e30a748a4
* lang/python/Makefile.am (copystamp): Create one copy per Python
version.
(all-local): Adapt.
(clean-local): Likewise.
(install-exec-local): Likewise.
* lang/python/tests/run-tests.py: Likewise.
build: Use macOS' compatibility macros to enable all features.
+ commit 60273e8b2c11d42215a5707bc55e3e0d8f350e07
* configure.ac: On macOS, use the compatibility macros to expose every
feature of the libc. This is the equivalent of _GNU_SOURCE on GNU
libc.
Revert "Disable fd-passing for Apple."
+ commit f8db658f8b4c3c7941d0029273fb23fbe1ba74ad
The actual bug has been located, so this can be reverted.
This reverts commit ef5b4ae37d13142e89a051908dc080cda3d24baa.
2017-02-13 Igor Gnatenko <ignatenkobrain@fedoraproject.org>
qt: Add missing #include <functional>
+ commit 60064c665ec98a2a994fc6c8ad701e60b963ce7e
* lang/qt/src/qgpgmenewcryptoconfig.cpp,
lang/qt/src/threadedjobmixin.h: Include functional.
2017-02-07 Andre Heinecke <aheinecke@intevation.de>
qt: Don't rely on implicit include in t-verify.
+ commit 903bf16a416b1bf608b1e647937c9b06864b0141
* lang/qt/tests/t-various.cpp: Include QTemporaryDir
2017-02-06 Daniel Kahn Gillmor <dkg@fifthhorseman.net>
doc: Document that gpgme_op_genkey() parms parameter is not XML.
+ commit ad22bee5387b1e9a40e8c822a081db3228bb9def
* doc/gpgme.texi (GnupgKeyParms): document that input format is not
true XML.
2017-02-03 Werner Koch <wk@gnupg.org>
core: Optimize fork/exec for *BSD and Solaris.
+ commit 51bd69f216a9e2930eeba4b5f6c20e952a381720
* configure.ac (closefrom): Add to ac_check_funcs.
* src/posix-io.c (_gpgme_io_spawn): Use closefrom.
core: Fix possible deadlock due to get_max_fds.
+ commit 93a59070c699d569d1eac7ba22355fe3f5d10882
* src/posix-io.c (get_max_fds): Do not use the Linux optimization.
core: Minor cleanup of commit 195c735.
+ commit afc308598d1ddaf20d54b4eab30b959066a4e5e6
* src/verify.c (parse_tofu_user): For cleanness use gpg_error ...
(_gpgme_verify_status_handler): ... and gpg_err_code.
2017-02-02 Andre Heinecke <aheinecke@intevation.de>
qt: Add test for tofu conflict.
+ commit 43160a39f27f6c3507447620666c85af00b3499c
* lang/qt/tests/t-tofuinfo.cpp (TofuInfoTest::testTofuConflict): New.
core: Handle multiple TOFU_USER lines in verify.
+ commit 195c73589232160f45d00f4901c9bb2b0162f0e5
* src/verify.c (op_data_t): Add conflict_user_seen.
(parse_tofu_user): Return ERR_DUP_VALUE for mutltiple TOFU_USERS.
(_gpgme_verify_status_handler): Handle ERR_DUP_VALUE from
parse_tofu_user to ignore the next TOFU_STATS.
2017-02-02 Werner Koch <wk@gnupg.org>
core: Replace all calls to *sprintf by gpgrt_*sprintf.
+ commit 15050ce5fce4ed815503db7c029abb38d08970d6
* configure.ac (vasprintf): Remove check.
* src/vasprintf.c: Remove file.
* src/util.h (vasprintf, asprintf): Remove prototypes. Replace all
calls to vasprintf and asprintf by gpgrt_vasprintf or gpgrt_asprintf.
Also take care to use gpgrt_free on the returned value.
* src/w32-util.c (_gpgme_get_gpgconf_path): Replace a gpgrt_asprintf
by _gpgme_strconcat.
(snprintf): New macro to use gpgrt_snprintf instead of the system's
standard snprintf.
core: Remove unused check for funopen/fopencookie.
+ commit 563420a88f8a4f561a2faea4d2b4a1c58b375fd8
* configure.ac (funopen): Remove check.
* src/funopen.c: Remove file.
core: Un-deprecate gpgme_data_rewind.
+ commit d19bea52afe6efb66a46af6aa4d09928c5d05ee5
* src/gpgme.h.in (gpgme_data_rewind): Un-deprecate.
* src/data-compat.c (gpgme_data_rewind): Move to ...
* src/data.c (gpgme_data_rewind): here.
core: Move all deprecated stuff to the end of gpgme.h.
+ commit 9b7d81998b734fabeb4fbc697f08fc7795eaa90a
2017-02-01 Andre Heinecke <aheinecke@intevation.de>
core: Cleanup gpgme_key_unref frees.
+ commit 8ede86795a1d419c01b4910ec2fd1fb18b629452
* src/key.c (gpgme_key_unref): Nowadays we assume free(NULL) is ok.
core: Fix leakage of address for mail only uids.
+ commit b5075030bec9b21bf4e515bc1686df3fa43eced2
* src/key.c (gpgme_key_unref): Always free address if set.
(_gpgme_key_append_name): Remove memory optimization for address.
core: Improve mailbox only uid handling.
+ commit a28d31fdb623f2ee30e8094d09f1a0d1ae446a9b
* src/key.c (_gpgme_key_append_name): Set email and remove name
for uid only keys.
2017-01-31 Justus Winter <justus@g10code.com>
qt: Increase timeout when waiting for signals.
+ commit ba594d85e35e63301755977234d3af88a167a215
* lang/qt/tests/t-support.h (QSIGNALSPY_TIMEOUT): New macro.
* lang/qt/tests/t-encrypt.cpp: Use the new macro as timeout when
waiting for signals.
* lang/qt/tests/t-keylist.cpp: Likewise.
* lang/qt/tests/t-keylocate.cpp: Likewise.
* lang/qt/tests/t-ownertrust.cpp: Likewise.
* lang/qt/tests/t-wkspublish.cpp: Likewise.
2017-01-31 Werner Koch <wk@gnupg.org>
core: Add new context flag "redraw".
+ commit 752d3597ef02a95efd693373132bf1e246f0edb0
* src/context.h (struct gpgme_context): New field 'redraw_suggested'.
* src/op-support.c (_gpgme_op_reset): Clear REDRAW_SUGGESTED.
* src/progress.c (_gpgme_progress_status_handler): Set REDRAW_SUGGESTED.
* src/gpgme.c (gpgme_set_ctx_flag, gpgme_get_ctx_flag): Add "redraw".
* tests/run-sign.c (main): Use it.
2017-01-30 Andre Heinecke <aheinecke@intevation.de>
tests: Reduce iterations / threads.
+ commit 7bd6ab4a91d43d7cbf5d347c0c12e0e4f9f7e3bf
* tests/gpg/t-gpgconf.c (main): Reduce iterations to 10.
* tests/gpg/t-thread-keylist-verify.c,
tests/gpg/t-thread-keylist.c (THREAD_COUNT): Reduce to 10.
2017-01-26 Andre Heinecke <aheinecke@intevation.de>
python: Ensure quick-random is used if gpg is gpg2.
+ commit f3ca2c9ce9fd4a03e293065f10b92589a7e642d6
* lang/python/tests/Makefile.am (gpg.conf): Configure
agent-program accordingly.
2017-01-25 Tobias Mueller <muelli@cryptobitch.de>
python: default op_keylist_start parameters.
+ commit 9291ebaa4151a1f6c8c0601095ec45809b963383
* lang/python/gpgme.i: Added gpgme_op_keylist_start with defaults
* lang/python/tests/t-keylist.py: Added tests for default parameters
2017-01-25 Andre Heinecke <aheinecke@intevation.de>
tests: Use --debug-quick-random for tests.
+ commit a98951a30a6ae603ffac4ec8c5168aa6d1019933
* tests/start-stop-agent: Don't autostart agent on --stop and
running check. Use --debug-quick-random when starting.
2017-01-23 Justus Winter <justus@g10code.com>
w32: Fix closing file descriptors.
+ commit 6f02133bb07726afa6950e5b4685e75621276e60
* src/w32-io.c (writer): Only stop once the buffer is drained.
(destroy_writer): Wait for the writers buffer to be drained. This
aligns '_gpgme_io_close's behavior with close(2) and fclose(3).
2017-01-17 Andre Heinecke <aheinecke@intevation.de>
tests: Add safeguards against nullptr deref.
+ commit ca69df8c8d3f044340aee2a118cc20d33cd600a1
* t-gpgconf.c (main): Test some values before dereferencing them.
2017-01-16 Andre Heinecke <aheinecke@intevation.de>
qt: Use QVERIFY instead of Q_ASSERT in conf test.
+ commit abfd241d1a1ae8e30e18b7c5e0658b8c54d89544
* lang/qt/tests/t-config.cpp: Use QVERIFY instead of Q_ASSERT.
qt: Add test for CryptoConfig.
+ commit 8aba08d1d0871f439fb7193adc4a2f43a81ee216
* lang/qt/tests/t-config.cpp: New.
* lang/qt/tests/Makefile.am: Update accordingly.
2017-01-16 Justus Winter <justus@g10code.com>
tests: Fix distcheck.
+ commit 92543da94cbf8e807b1b33070d273f995cdd5c62
* tests/gpg/Makefile.am (CLEANFILES): Remove gpgconf backups.
Fix changing options with gpgconf.
+ commit 0e242278dfaa64ce31a45b72f5fa0806a3dba898
* src/engine-gpgconf.c (gpgconf_write): Connect a pipe to the child's
stderr, and wait for it to be closed as an indication that gpgconf has
exited. Also improve error handling.
2017-01-12 Justus Winter <justus@g10code.com>
tests: Improve the gpgconf test.
+ commit 186dcd3494eda7383de57a530fd15776410531a5
* tests/gpg/t-gpgconf.c: Include support functions.
(fail_if_err): Remove macro.
(init_gpgme): Remove function.
(lookup): New function.
(main): Update some values and verify that the changes are applied.
* tests/gpg/t-support.h (test): New assert-like macro.
2017-01-12 Andre Heinecke <aheinecke@intevation.de>
qt: Add support for stringValueList in CryptoConf.
+ commit 9640dc58e498966b482dcded6990cf4b47c556ac
* lang/qt/src/Makefile.am (qgpgme_sources): Add cryptoconfig.cpp
* lang/qt/src/cryptoconfig.cpp: New.
* lang/qt/src/cryptoconfig.h (CryptoConfigEntry::stringValueList):
New.
* lang/qt/src/qgpgmenewcryptoconfig.cpp
(QGpgMENewCryptoConfigEntry::stringValueList): New.
* lang/qt/src/qgpgmenewcryptoconfig.h: Update accordingly.
qt: Don't use qstrdup in test passphrase cb.
+ commit a09ed3f26a1fab54079c37c49df5c440cc792f78
* lang/qt/tests/t-support.h (TestPassphraseProvider::getPassphrase):
Use gpgrt_asprintf instead of strdup.
2017-01-11 Andre Heinecke <aheinecke@intevation.de>
qt: Clean up test dirs on failure.
+ commit 56926c9b5012e8135541a933af1d69c5a81f02b3
* t-encrypt.cpp,
t-keylist.cpp,
t-keylocate.cpp,
t-ownertrust.cpp,
t-tofuinfo.cpp,
t-various.cpp,
t-verify.cpp,
t-wkspublish.cpp: Use QVERIFY instead of Q_ASSERT
qt: Add test for uid functions.
+ commit 9e643ab67168dfbd189ccc0bfed8fb59253ee79c
* lang/qt/tests/t-various.cpp: New.
* lang/qt/tests/Makefile.am: Update accordingly.
cpp: Add revuid and adduid support.
+ commit e416f9961837039f259558edf41fccbc181ad128
* lang/cpp/src/context.cpp
(Context::revUid, Context::startRevUid),
(Context::addUid, Context::startAddUid): New.
* lang/cpp/src/context.h: Declare new functions.
* lang/cpp/src/key.cpp (Key::UserID::revoke)
(Key::addUid): Idomatic helpers.
lang/cpp/src/key.h: Declare new functions.
* NEWS: Update accordingly.
Fix Qgpgme build for macos.
+ commit efe58fe011f195d98adb4f03b1e1068a26ba287b
* lang/qt/src/dn.cpp: Include string.h
(parse_dn_part): Use qstrdup.
* lang/qt/tests/t-support.h (getPassphrase): Use qstrdup.
Fix cmake configuration files for MacOS.
+ commit 2e661b9e1a9b50656a5c9646d7444a98477010c1
* configure.ac: Set HAVE_MACOS_SYSTEM conditional.
* lang/qt/src/Makefile.am,
lang/cpp/src/Makefile.am,
lang/qt/src/QGpgmeConfig.cmake.in.in,
lang/cpp/src/GpgmeConfig.cmake.in.in: Use libsuffix again to
distinguish between macos .dylib
2017-01-03 Justus Winter <justus@g10code.com>
python: Improve compatibility with Scheme tests.
+ commit b14419f68b3aaa90025e0e97151de7c3da7806fb
* lang/python/tests/run-tests.py: Add stub --parallel option.
python: Add a switch '--quiet' to the test runner.
+ commit d0e91d28f63b74e53673902e675be8a54b6b90d3
* lang/python/tests/run-tests.py: Add and honor a switch '--quiet'.
This way we can use this script to run Python tests one by one without
the noise, and the script will setup the necessary environment for us.
2017-01-02 Andre Heinecke <aheinecke@intevation.de>
qt: Update config sync doc / comment.
+ commit ececfd5de81f1851943be7b284b672d5b02aceb4
* lang/qt/src/cryptoconfig.h (CryptoConfig::sync): Document
that runtime option is always set.
* lang/qt/Src/qgpgmenewcryptoconfig.cpp
(QGpgMENewCryptoConfigComponent::sync): Remove outdated comment
and warn on error.
core: Always use runtime for gpgconf changes.
+ commit 7103315829847163f1c6f52cad25d1ddb33358f0
* src/engine-gpgconf.c (gpgconf_write): Add --runtime.
* src/gpgme.h.in (gpgme_conf_opt_change): Document this
behavior.
2017-01-01 Ben Kibbey <bjk@luxsci.net>
Fix gpg_addkey() to work with GPGME_CREATE_NOPASSWD as well.
+ commit a4b9f1a2b404fd8627d5ac567617510abd55d980
* src/engine-gpg.c (gpg_addkey): Pass --batch to gpg when
GPGME_CREATE_NOPASSWD is set to fix pinentry without loopback mode.
2016-12-27 Ben Kibbey <bjk@luxsci.net>
Fix GPGME_CREATE_NOPASSWD without pinentry loopback.
+ commit d83b8f0dc84d6cf7fe2e091bd1b103ceedfa3d6c
* src/engine-gpg.c(gpg_createkey): Pass --batch to gpg when
GPGME_CREATE_NOPASSWD is set.
2016-12-19 Raphael Kubo da Costa <rakuco@FreeBSD.org>
Qt: Make sure extended grep is used with '|'.
+ commit 211844f049d714cd4d5aab96347705cb0c209c5d
* m4/qt.m4: Use grep -E when using the alternation character.
2016-12-16 Andre Heinecke <aheinecke@intevation.de>
cpp: Ensure that hasSecret is correct after update.
+ commit da5343a9d2c8c0ca6431162aac4bd5c73b4ae6dd
* lang/cpp/src/key.cpp (Key::update): Check for
a secret key first before listing public keys.
2016-12-15 Andre Heinecke <aheinecke@intevation.de>
cpp: Fix addrSpec for keys without email.
+ commit 85e05537e15346896a271d3f62bead9dd7e3f180
* lang/cpp/src/key.cpp (UserID::addrSpec): Use uid->address instead
of normalizing again.
(&operator<<(std::ostream &, const UserID &): Print it.
cpp: Fix update of partial key in verifyresult.
+ commit 5673f3e54af535155893290a685b3afb44c7f58d
* lang/cpp/src/verificationresult.cpp
(Signature::key(bool,bool)): Don't update the returned copy
but the actual key of the signature.
2016-12-07 Andre Heinecke <aheinecke@intevation.de>
Clarify what "checking on bit" means.
+ commit 7880335273382f05cbbe38aa965a566c4127ba6a
* doc/gpgme.texi (gpgme_sigsum_t summary): Clarify what "you
can check one bit means"
2016-12-05 Tobias Mueller <muelli@cryptobitch.de>
python: Try to be more helpful when given a string to encrypt().
+ commit 05896c210f7fa9ce7b97784a75e49dc4489e9252
* lang/python/helpers.c (_gpg_obj2gpgme_data_t): Extended error
message.
* lang/python/tests/t-encrypt.py: Test for "encode" in error message.
python: Define a macro for wrapping fragile result objects.
+ commit fb7f4cb973abc9f5eb05eb240607be35c1be986c
* lang/python/gpgme.i (wrapresult): New Macro.
2016-12-01 Tobias Mueller <muelli@cryptobitch.de>
python: Check "buffer" when writing to sys.stdout for python2 compat.
+ commit ae21d2705fc46725e1f9af1651b68d16155d1501
* lang/python/tests/support.py (print_data): Add check for buffer.
python: Make Context have a repr method.
+ commit 154389f2a5e4c13081cf0624222aad29ee480b56
* lang/python/gpg/core.py (Context.__repr__): New function.
python: Make Results have a nicer __repr__.
+ commit db2f6c1ca3d2ef228f4ca6653d594537622c8588
* lang/python/gpg/results.py (Result.__str__): Renamed to '__repr__'
...
* lang/python/gpg/results.py (Result.__repr__): ... and added fields.
2016-11-25 Justus Winter <justus@g10code.com>
python: Fix removing the TOFU database.
+ commit fd4d476214ae06e33f4a6dac534d3deca5cc6cd3
* lang/python/Makefile.am (CLEANFILES): Move 'tofu.db'...
* lang/python/tests/Makefile.am (CLEANFILES): ... here.
tests: Remove tofu.db.
+ commit 9b22f82afc5518961e4bea1fc516b79800e379a2
* lang/python/Makefile.am (CLEANFILES): Add 'tofu.db'.
* tests/gpg/Makefile.am (CLEANFILES): Likewise.
2016-11-17 Heiko Becker <heirecka@exherbo.org>
Remove a forgotten instance of @libsuffix@
+ commit 572c1aac107125ce62230251713349348373db5a
* lang/cpp/src/GpgmeppConfig.cmake.in.in: Remove a forgotten
instance of @libsuffix@.
2016-11-16 Werner Koch <wk@gnupg.org>
Release 1.8.0.
+ commit f06220b691e9711afdabaa19886244ae7724eed5
* configure.ac: Set version to 1.8.0. Set LT version C28/A17/RO.
Set CPP LT version to C9/A3/R0. Set Qt LT version to C8/A1/R0.
core: Do not leak the override session key to ps(1).
+ commit 9fc92a15bd0a30437a39d0eb28b6f40edc22e6e8
* src/engine-gpg.c (struct engine_gpg): New field
override_session_key.
(gpg_release): Free that field.
(gpg_decrypt): With gnupg 2.1.16 use --override-session-key-fd.
* tests/run-decrypt.c (main): Fix setting over the override key.
2016-11-16 Daniel Kahn Gillmor <dkg@fifthhorseman.net>
doc,tests: Require use of ctx_flag before use of session_key.
+ commit 573064742145aa5f9bf04baa88af918c0c4d5e12
* doc/gpgme.texi: Document requirements of verifying that it is OK to
use session_key.
* tests/run-decrypt.c: Ensure that we fail if we're unable to access
the session key, so that we do not violate the guidance above.
Changed the description
-@code{gpgme_set_ctx_flag (ctx, "export-session-key")} returns
-@code{GPG_ERR_NO_ERROR} or @code{gpgme_get_ctx_flag (ctx,
-"export-session-key")} returns @code{"1"}.
+@code{gpgme_set_ctx_flag (ctx, "export-session-key")} returns success
+or @code{gpgme_get_ctx_flag (ctx, "export-session-key")} returns true
+(non-empty string).
to get gpgme_get_ctx_flag for boolean values in sync with its own
description.
Note that I don't agree with the above suggestion but it does not
really harm to have it in the man page.
2016-11-15 Andre Heinecke <aheinecke@intevation.de>
qt, cpp: Add cmake config files for w32.
+ commit b2c07bd47bd608afa5cc819b60a7b5bb8c9dd96a
* lang/cpp/src/GpgmeppConfig-w32.cmake.in.in
lang/qt/src/QGpgmeConfig-w32.cmake.in.in: New.
* lang/cpp/src/GpgmeppConfig.cmake.in.in,
lang/qt/src/QGpgmeConfig.cmake.in.in: Remove libsuffix handling.
* lang/cpp/src/Makefile.am,
lang/qt/src/Makefile.am: Create / install w32 config files.
* configure.ac: Configure them.
qt: Use new style connect in th..mixin.
+ commit 45abe6d142e314ba7099ad80b6365af171b06fec
* lang/qt/src/threadedjobmixin.h
(ThreadedJobMixin::lateInitialization): Use new style connect.
2016-11-15 Werner Koch <wk@gnupg.org>
core: Implement context flag "override-session-key".
+ commit 7659d42468b604db2936b021425683f407eba4a7
* src/gpgme.c (gpgme_set_ctx_flag): Add flags "export-session-key" and
"override-session-key".
(gpgme_get_ctx_flag): Ditto.
(gpgme_set_export_session_keys): Remove.
(gpgme_get_export_session_keys): Remove.
* src/gpgme.def, src/libgpgme.vers: Remove them.
* src/context.h (struct gpgme_context): Add field
override_session_key.
* src/decrypt-verify.c (decrypt_verify_start): Pass
override_session_key value to the engine.
* src/decrypt.c (decrypt_start): Ditto.
* src/engine.c (_gpgme_engine_op_decrypt): Ditto.
(_gpgme_engine_op_decrypt_verify): Ditto.
* src/engine-backend.h (struct engine_ops): Extend DECRYPT and
DECRYPT_VERIFY_START with override_session_key.
* src/engine-uiserver.c (_uiserver_decrypt): Add stub arg
override_session_key.
(uiserver_decrypt): Ditto.
(uiserver_decrypt_verify): Ditto.
* src/engine-gpgsm.c (gpgsm_decrypt): Ditto.
* src/engine-gpg.c (gpg_decrypt): Add arg override_session_key and set
corresponding gpg option.
* tests/run-decrypt.c (print_result): Print the session key if
available.
(main): Add options --export-session-key and --override-session-key.
core: Add public function gpgme_get_ctx_flag.
+ commit 3234b1bf1d6939772677d64f6c1e1820ec98e3cd
* src/gpgme.h.in (gpgme_get_ctx_flag): New.
* src/gpgme.c (gpgme_set_ctx_flag): Move down the file and add a trace
statement.
(gpgme_get_ctx_flag): New.
* src/gpgme.def, src/libgpgme.vers: Add new interface.
2016-11-15 Daniel Kahn Gillmor <dkg@fifthhorseman.net>
core: Enable extraction of session keys.
+ commit cad1210fb8a7402cb29e607f8f9680005314120d
* src/gpgme.c (gpgme_set_export_session_keys): New function.
(gpgme_get_export_session_keys): New function.
* src/gpgme.h.in (struct _gpgme_op_decrypt_result): Add session_key
member.
(gpgme_{set,get}_export_session_keys): Declare new functions.
* src/libgpgme.vers, src/gpgme.def: Export new functions in shared
object.
* src/engine.h: (_gpgme_engine_op_decrypt) Add export_session_key
parameter.
(_gpgme_engine_op_decrypt_verify): Add export_session_key parameter.
* src/engine-backend.h: (struct engine_ops): Change function
pointer declarations to match.
* src/context.h (struct gpgme_context): Add export_session_keys member.
* src/decrypt.c (release_op_data): Free result.session_key.
(_gpgme_decrypt_status_handler): Store a copy of the exported session
key.
(decrypt_start): Pass export_session_keys from the context.
* src/decrypt-verify.c (decrypt_verify_start): Pass
export_session_keys from context.
* src/engine.c (_gpgme_engine_op_decrypt): Pass through
export_session_key flag.
(_gpgme_engine_op_decrypt_verify): Pass through export_session_key
flag.
* src/engine-gpg.c (gpg_decrypt): If export_session_key is set, add
--export-session-key to argument list.
* src/engine-gpgsm.c (gpgsm_decrypt): Ignore export_session_key for
now, since gpgsm offers no such mechanism.
* src/engine-uiserver.c (_uiserver_decrypt): If export_session_key is
set, add --export-session-key flag to cmd.
* doc/gpgme.texi: Document new functions and session_key member of
decrypt_result_t.
* doc/uiserver.texi: Add --export-session-key flag to DECRYPT command.
2016-11-14 Andre Heinecke <aheinecke@intevation.de>
qt: Add API to get the context for a Job.
+ commit 9451faa2ee333904cff59f92ab62918e13ab4b87
* lang/qt/src/job.cpp,
lang/qt/src/job.h (Job::context): New.
* lang/qt/src/threadedjobmixin.cpp
(ThreadedJobMixin::~ThreadedJobMixin): New. Unregister context.
(ThreadedJobMixin::lateInitialization): Register context.
* NEWS: Update for cpp and qt.
cpp: Add get / set Sender API.
+ commit d09a84eaf1e4f8c6c2e462995fa15c1a5690a6ce
* cpp/src/context.cpp, cpp/src/context.h (Context::setSender),
(Context::getSender): Add simple wrappers.
qt, cpp: Enable dll build for windows.
+ commit f3790ddf56558fb0a08af95fdbae979cd6589aad
* lang/cpp/src/Makefile.am,
lang/qt/src/Makefile.am: Add -no-undefined to LDFLAGS.
w32: Fix build of w32-glib.
+ commit b91c383386fe9eadd90afdb9bb1f8ec6c528173b
* src/Makefile.am (main_sources): Remove system_components_not_extra.
(libgpgme_la_SOURCES): Add system_components_not_extra.
(libgpgme_glib_la_SOURCES): Remove duplicated ath files.
2016-11-11 Daniel Kahn Gillmor <dkg@fifthhorseman.net>
doc: Correct deftypefun for gpgme_op_decrypt_verify_start.
+ commit 16a30205064914eef578d84d07141b5d51d82838
* doc/gpgme.texi: Documentationabout gpgme_op_decrypt_verify_start was
stored under the name gpgme_op_decrypt_verify instead.
doc: Correct text about gpgme_cancel_async.
+ commit d50bdb269e86db36a443958e3bfc6816a44d468e
* doc/gpgme.texi: Documentation about gpgme_cancel_async should refer
to the correct name.
core: Non-zero values should set _armor, _textmode, and _online.
+ commit da035768bd9a880becee5d0d553dfe12299f96eb
* src/gpgme.c (gpgme_set_armor, gpgme_set_textmode,
gpgme_set_offline): Ensure that non-zero values actually set the
appropriate internal bit.
2016-11-11 Alon Bar-Lev <alon.barlev@gmail.com>
tests,python: Atomic directory creation.
+ commit 41d8c7e51a8989be633b9ada124c58a01fae7d54
* lang/python/tests/Makefile.am: Use MIDIR_P.
* tests/gpg/Makefile.am: Ditto.
* tests/gpgsm/Makefile.am: Ditto.
2016-11-10 Werner Koch <wk@gnupg.org>
core: Use better error code when using select with a too high fd.
+ commit 6e57379c8e37c0863f7d12819a5a7d0781bd76d2
* src/posix-io.c (_gpgme_io_select): Return EMFILE instead of EBADF.
2016-11-10 Andre Heinecke <aheinecke@intevation.de>
tests: Reduce thread count in new thread tests.
+ commit ddd0a3cf90ac4b0a27ea610ebd7b9b8016ff43c4
* gpg/t-thread-keylist-verify.c,
gpg/t-thread-keylist.c: Reduce threads to 100
2016-11-10 Werner Koch <wk@gnupg.org>
core: Detect unreadable keyrings.
+ commit 2a39bd6c30d21c43c86645a7908ce6c57dad5e20
* src/keylist.c (op_data_t): Add field keydb_search_err.
(keylist_status_handler): Parse STATUS_ERROR into that var.
(gpgme_op_keylist_next): Use that err instead of GPG_ERR_EOF.
2016-11-10 Andre Heinecke <aheinecke@intevation.de>
tests: Fix additional memleaks in thread tests.
+ commit d0030efb45ec8436dd84a9623d2f66b80c6b9e10
* tests/gpg/t-thread-keylist-verify.c (start_verify): Release
data.
(start_keylist): Unref keys.
* tests/gpg/t-thread-keylist.c (start_keylist): Unref keys.
tests: Improve new thread tests.
+ commit 4d5174e4a83dcd524f8085f6646145f81b50a02a
* tests/gpg/t-thread-keylist-verify.c (start_keylist): Mark
arg as unused. Release context.
(start_verify): Ditto.
(main): Mark args as unused.
* tests/gpg/t-thread-keylist.c (start_keylist): Mark
arg as unused. Release context.
(main): Mark args as unused.
core: Use gpgrt locking for thread safeness.
+ commit 09b64554328445e99a8cc78fc34ea49c2ea2e7f9
* configure.ac: Require libgpg-error 1.17. No longer
check for pthread.
* doc/gpgme.texi: Document removed neccessity for thread
safe gpgme flavours.
* src/sema.h (DEFINE_GLOBAL_LOCK),
(DEFINE_STATIC_LOCK, INIT_LOCK, DECLARE_LOCK)
(DESTROY_LOCK, LOCK, UNLOCK): Change to gpgrt equivalents.
* src/posix-sema.c, src/w32-sema.c: Removed.
* src/Makefile.am: Remove libpthread and
Update accordingly.
* src/ath.c, src/ath.h (ath_mutex_init)
(ath_mutex_destroy, ath_mutex_lock, ath_mutex_unlock): Removed.
* src/ath.h (ATH_MUTEX_INITIALIZER): Removed.
* src/version.c (do_subsystem_inits): sema_subsystem_init is
no longer required.
* tests/gpg/Makefile.am: Add new threading tests.
(t_thread1_LDADD, t_cancel_LDADD):
Use just gpgme.
* tests/gpg/t-thread-keylist-verify.c,
tests/gpg/t-thread-keylist.c: New.
* src/gpgme-config.in: Use -lgpgme for thread-model pthread.
2016-11-09 Justus Winter <justus@g10code.com>
python: Require at least GPGME 1.7 for out-of-tree builds.
+ commit f1f341062e24724e26928d893dd5769d3ccf5fa2
* lang/python/setup.py.in: Bump required version to 1.7.
2016-11-09 Werner Koch <wk@gnupg.org>
w32: Better protect the IO-system's fd_table.
+ commit 10f2e1c30be651e74a03f4563a9f212d7416adb3
* src/w32-io.c (fd_table_lock): New.
(new_fd): Lock allocation of a new slot.
(release_fd): Lock deallocation of a slot.
2016-11-04 Andre Heinecke <aheinecke@intevation.de>
cpp: Add API for swdb queries.
+ commit 3509cf2f9846360848b6c08d36cbca18373c935e
* lang/cpp/src/swdbresult.cpp,
lang/cpp/src/swdbresult.h (SwdbResult): New.
* lang/cpp/src/Makefile.am: Update accordingly.
cpp: Add more EngineInfo::Version ctors.
+ commit 512de91f9a8da8f491e09653eb4b5bdd0a027198
* lang/cpp/src/engineinfo.h
(EngineInfo::Version::Version(const char*)),
(EngineInfo::Version::Version()): New.
cpp: Don't include gpgme.h in tofuinfo header.
+ commit 4d3f33d0e9d960df2c34fb4d215987ab4d36111c
* lang/cpp/src/tofuinfo.h: Don't include gpgme.h
cpp: Extend gpgmefw for tofuinfo and swdb query.
+ commit 23979b9be5a6028e3e9cafc3aff632bc720b81f2
* lang/cpp/src/gpgmefw.h (gpgme_tofu_info_t)
(gpgme_query_swdb_result_t): New forwards.
2016-11-04 Werner Koch <wk@gnupg.org>
w32: Fix locating gpgconf on 64 bit systems.
+ commit df08a0ca3f029b06b7e3a6bd63330df5cb96585a
* src/w32-util.c (find_program_at_standard_place): Use access to check
whether the binary is at CSIDL_PROGRAM_FILES before testing
CSIDL_PROGRAM_FILESX86.
2016-11-03 Werner Koch <wk@gnupg.org>
core: Add gpgme_op_query_swdb and helper.
+ commit aad94cb7c313d4501bed748f48830cbb93c67e20
* src/gpgme.h.in (gpgme_query_swdb_result_t): New.
(gpgme_op_query_swdb): New.
(gpgme_op_query_swdb_result): New.
* src/libgpgme.vers, src/gpgme.def: Add the two new functions.
* src/queryswdb.c: New.
* src/Makefile.am (main_sources): Add new file.
* src/context.h (OPDATA_QUERY_SWDB): New.
* src/engine-backend.h (struct engine_ops): Add field 'query_swdb'.
Adjust all initializer.
* src/engine.c (_gpgme_engine_op_query_swdb): New.
* src/engine-gpgconf.c (parse_swdb_line): New.
(gpgconf_query_swdb): New.
(_gpgme_engine_ops_gpgconf): Register that function.
* src/util.h (GPG_ERR_TOO_OLD): Define for older libgpg-error.
(GPG_ERR_ENGINE_TOO_OLD): Ditto.
* tests/run-swdb.c: New.
* tests/Makefile.am (noinst_PROGRAMS): Add new debug tool.
2016-11-03 Andre Heinecke <aheinecke@intevation.de>
qt: Change license of export / version header.
+ commit 34a4e8017be452e8ead6b9c2da84be1ec7929cae
* lang/qt/src/qgpgme_export.h,
lang/qt/src/qgpgme_version.h: Change license to GPLv2+
2016-11-03 Werner Koch <wk@gnupg.org>
core: Make use of --homedir in gpgconf.
+ commit 0c2038c0043c1e79547b55e79c3d3e267dae801c
* src/engine-gpgconf.c (struct engine_gpgconf): Add field 'version'.
(have_gpgconf_version): New.
(gpgconf_release): Free VERSION.
(gpgconf_new): Set VERSION.
(gpgconf_read, gpgconf_write): Use --homedir with recent gnupg.
2016-11-02 Andras Mantia <andras@kdab.com>
qt: Fix build with g++ 4.8.x.
+ commit b4658f6a1110bb0b54bd5dfc9df8e8b390e38d61
* lang/qt/src/defaultkeygenerationjob.cpp
(DefaultKeyGenerationJob::start): Explicitly connect pointer
in the QPointer.
2016-11-02 Andre Heinecke <aheinecke@intevation.de>
qt, cpp: Fix versioning in cmake config and header.
+ commit bf9aa0ccf7b0165aa3a1af2bdb18daca7c02ce74
* configure.ac (VERSION_MAJOR, VERSION_MINOR, VERSION_MICRO): New
subst variables for the version header.
* lang/cpp/src/GpgmeppConfigVersion.cmake.in,
lang/cpp/src/gpgmepp_version.h.in,
lang/qt/src/QGpgmeConfigVersion.cmake.in,
lang/qt/src/qgpgme_version.h.in: Use new variables.
qt: Install cmake config into qgpgme subdir.
+ commit b5c4d56cfdcafade3467be100fca6f1c89ecab73
* lang/qt/src/Makefile.am: Install cmake config file in qgpgme subdir.
qt: Require gpgmepp from cmake config script.
+ commit 4149194d2e2f2f4d142926ba4d4efbd336b543f2
* lang/qt/src/QGpgmeConfig.cmake.in.in: Require cpp.
qt, cpp: Add all generated files to cleanfiles.
+ commit 8486f213423311174ebff5cba74127cbd9bb3c2a
* cpp/src/Makefile.am (CLEANFILES),
qt/src/Makefile.am (CLEANFILES): Add all generated files
to cleanfiles.
2016-11-01 Andre Heinecke <aheinecke@intevation.de>
qt: Add Distinguished Name parser from libkleo.
+ commit 627c5deed84b4481710b6c0de06b26e886679bbe
* lang/qt/src/dn.cpp (DN, DN::Attribute): New public API.
* lang/qt/src/dn.h: New.
* lang/qt/src/Makefile.am: Update accordingly.
qt, cpp: Install version headers in subdirs.
+ commit 567123de21247cab05762d799400739a12eb67ae
* lang/cpp/src/Makefile.am,
lang/qt/src/Makefile.am: Install version headers in include
subdirs.
2016-10-31 Justus Winter <justus@g10code.com>
python: Use vanity modules for constants in tests and examples.
+ commit 4b3264345084a0c9bf9f97fb233df700d7608e66
* lang/python/gpg/constants/sig/notation.py: New file.
* lang/python/gpg/constants/sig/__init__.py: Import new module.
* lang/python/examples/assuan.py: Use more specific module for
constants, e.g. 'protocol.ASSUAN' instead of 'PROTOCOL_ASSUAN'.
* lang/python/examples/testCMSgetkey.py: Likewise.
* lang/python/tests/initial.py: Likewise.
* lang/python/tests/t-callbacks.py: Likewise.
* lang/python/tests/t-decrypt-verify.py: Likewise.
* lang/python/tests/t-decrypt.py: Likewise.
* lang/python/tests/t-edit.py: Likewise.
* lang/python/tests/t-encrypt-large.py: Likewise.
* lang/python/tests/t-encrypt-sign.py: Likewise.
* lang/python/tests/t-encrypt-sym.py: Likewise.
* lang/python/tests/t-encrypt.py: Likewise.
* lang/python/tests/t-export.py: Likewise.
* lang/python/tests/t-file-name.py: Likewise.
* lang/python/tests/t-idiomatic.py: Likewise.
* lang/python/tests/t-import.py: Likewise.
* lang/python/tests/t-keylist.py: Likewise.
* lang/python/tests/t-protocol-assuan.py: Likewise.
* lang/python/tests/t-sig-notation.py: Likewise.
* lang/python/tests/t-sign.py: Likewise.
* lang/python/tests/t-signers.py: Likewise.
* lang/python/tests/t-trustlist.py: Likewise.
* lang/python/tests/t-verify.py: Likewise.
* lang/python/tests/t-wait.py: Likewise.
python: Import the topmost module in tests and examples.
+ commit 20dc37a0e7e1531b0e568a6ec29b1c2d18de59c3
* examples/verifydetails.py: Only import the topmost module 'gpg' and
update the code accordingly.
* tests/support.py: Likewise.
* tests/t-callbacks.py: Likewise.
* tests/t-data.py: Likewise.
* tests/t-decrypt-verify.py: Likewise.
* tests/t-decrypt.py: Likewise.
* tests/t-edit.py: Likewise.
* tests/t-encrypt-large.py: Likewise.
* tests/t-encrypt-sign.py: Likewise.
* tests/t-encrypt-sym.py: Likewise.
* tests/t-encrypt.py: Likewise.
* tests/t-export.py: Likewise.
* tests/t-file-name.py: Likewise.
* tests/t-import.py: Likewise.
* tests/t-keylist.py: Likewise.
* tests/t-sig-notation.py: Likewise.
* tests/t-sign.py: Likewise.
* tests/t-signers.py: Likewise.
* tests/t-trustlist.py: Likewise.
* tests/t-verify.py: Likewise.
* tests/t-wait.py: Likewise.
* tests/t-wrapper.py: Likewise.
python: Improve constants module.
+ commit 70b7064e5c4f3eff9c296c00156724bc0cdaa64f
* lang/python/gpg/constants/__init__.py: Import all modules below
'constants/'. Interface hygiene: delete 'util'.
* lang/python/gpg/constants/data/encoding.py: Delete 'util'.
* lang/python/gpg/constants/event.py: Likewise.
* lang/python/gpg/constants/import.py: Likewise.
* lang/python/gpg/constants/keylist/mode.py: Likewise.
* lang/python/gpg/constants/md.py: Likewise.
* lang/python/gpg/constants/pk.py: Likewise.
* lang/python/gpg/constants/protocol.py: Likewise.
* lang/python/gpg/constants/sig/mode.py: Likewise.
* lang/python/gpg/constants/sigsum.py: Likewise.
* lang/python/gpg/constants/validity.py: Likewise.
* lang/python/gpg/errors.py: Likewise.
2016-10-31 Daniel Kahn Gillmor <dkg@fifthhorseman.net>
python: Rename Python module from PyME to gpg.
+ commit 2fac017618a76882605125b05ff1f7393fe99860
This follows weeks of discussion on the gnupg-devel mailing list.
Hopefully it will make it easier for people using Python to use GnuPG
in the future.
2016-10-25 Werner Koch <wk@gnupg.org>
core: New API functions gpgme_set_sender, gpgme_get_sender.
+ commit b8159eadb5636cd9d93ee60c41e75d5978927870
* src/context.h (struct gpgme_context): Add field 'sender'.
* src/gpgme.c: Include mbox-util.h.
(gpgme_release): Free SENDER.
(gpgme_set_sender): New.
(gpgme_get_sender): New.
* src/gpgme.def, src/libgpgme.vers: Add new functions.
* src/engine-gpg.c (append_args_from_sender): New.
(gpg_encrypt_sign, gpg_sign): Call append_args_from_sender.
(gpg_verify): Add arg CTX. Call append_args_from_sender/
* src/engine-gpgsm.c (gpgsm_verify): Add dummy arg CTX.
* src/engine-uiserver.c (uiserver_verify): Ditto.
* src/engine.c (_gpgme_engine_op_verify): Add arg CTX.
* src/verify.c (verify_start): Pass CTX to engine function.
* tests/gpg/t-verify.c (main): Add some checks for new functions.
* tests/run-sign.c (main): Add option --sender.
* tests/run-verify.c (main): Ditto.
2016-10-19 Andre Heinecke <aheinecke@intevation.de>
qt: Improve WKSPublishJob apidoc.
+ commit 26cbba3c9cb04a68b95f3a6000ac9bd93fe76dd7
* lang/qt/src/wkspublishjob.h: Improve doc.
2016-10-18 Werner Koch <wk@gnupg.org>
Release 1.7.1.
+ commit 2c490cdb3e50761c498357982445ebb01f18dc1e
* configure.ac: Set LT version to C27/A16/R0. Note that the LT
versions for cpp and Qt have already been updated.
2016-10-14 Werner Koch <wk@gnupg.org>
tests: Make t-cancel more portable.
+ commit 05e8e1260baa5cbc6f1d6e387e642c1f6c188d44
* tests/gpg/t-cancel.c: Include sys/time.h and protect sys/select.h.
python: Call ln(1) in a portable way.
+ commit c6cab5a2bd6e7ed226c6c3f0b78b3f48b47db74c
* lang/python/Makefile.am: Specify target dir for ln.
2016-10-14 Andre Heinecke <aheinecke@intevation.de>
cpp: Fix init of string from null.
+ commit 1e8c34a9192956bb2fe96a7a6a76ff59de8d1c0c
* lang/cpp/src/key.cpp (UserID::addrSpecFromString): Check return
value before creating the string.
2016-10-13 Justus Winter <justus@g10code.com>
python: Make 'get_key' more idiomatic.
+ commit f526d0e22e8b881ccbca66b46a0e1b68bbc4cd6b
* lang/python/pyme/core.py (Context.get_key): Raise errors.KeyNotFound
if the key is not found. This error is both a KeyError for idiomatic
error handling as well as a GPGMEError so we don't break existing
code.
* lang/python/pyme/errors.py (KeyNotFound): New class.
* lang/python/tests/support.py (no_such_key): New variable.
* lang/python/tests/t-keylist.py: Test the new behavior.
python: Return public keys by default.
+ commit 1e6073ffa98db2c265adbcf0dbbe70c067a910f0
* lang/python/pyme/core.py (Core.get_key): Return public keys by
default, improve docstring.
* lang/python/examples/testCMSgetkey.py: Update example.
* lang/python/examples/verifydetails.py: Likewise.
python: Fix example.
+ commit cabd4c74e52c8983d624b6877cddc7f8912eff04
* lang/python/examples/inter-edit.py: Fix example.
2016-10-13 Andre Heinecke <aheinecke@intevation.de>
cpp: Fix version number.
+ commit 56302e7bb6a694a7c570f389f9a7883efdfdaf42
* configure.ac (LIBGPGMEPP_LT_CURRENT): Bump.
qt, cpp: Fix permissions of Config files.
+ commit a274c7590aa0e38d682d5177904983632f471cb0
* lang/cpp/src/Makefile.am,
lang/qt/src/Makefile.am: Do not install config files as executable.
qt: Install SpecialJob.
+ commit 2538c12fa0728f4113f83f69f8c8ec9efb163872
* lang/qt/src/Makefile.am: Install SpecialJob
* NEWS: mention it.
qt, cpp: Fix expected targets in Config files.
+ commit a3cf30f89418c8a6bc9456533d95ba7fc2a33a4c
* lang/cpp/src/GpgmeppConfig.cmake.in.in,
lang/qt/src/QGpgmeConfig.cmake.in.in: Remove KF5 variants.
2016-10-11 Daniel Vrátil <dvratil@kde.org>
qt: Add missing implementation of MultiDeleteJob.
+ commit e5a35af5573651b96a90ef4a537b040333595472
* lang/qt/src/multideletejob.h: Fix include, cryptobackend.h is now
called protocol.h
* lang/qt/src/multideletejob.cpp: New file.
* lang/qt/src/Makefile.am: Add multideletejob.cpp.
qt: Install abstractimportjob.h.
+ commit ce7385caabb57e5435695cc912acffe2815770b7
* lang/cpp/src/Makefile.am: Install abstractimportjob.h since it's
included from importjob.h
2016-10-11 Andre Heinecke <aheinecke@intevation.de>
cpp: Add API for gpgme_addrspec_from_uid.
+ commit 54f94b14e2bb9b38ffd89f509406bfbd012da632
* lang/cpp/src/key.cpp (UserID::addrSpecFromString): New static
function to expose addrspec from uid.
(UserID::addrSpec): New. Get addrSpec from Userid.
* NEWS: Update accordingly.
2016-10-10 Andre Heinecke <aheinecke@intevation.de>
Add NEWS for cpp and qt, bump cpp version.
+ commit e7ceb83a5969581f5e1b0b6a69d18a93b594f6d4
* NEWS: Add entries for cpp and qt changes.
* configure.ac: Bump cpp version because of added API.
Add convenience function to get key from sig.
+ commit b6b820bff14a9aa8fa67755b246c90062ffdba14
* lang/cpp/src/verificationresult.cpp (Signature::key(bool, bool)):
New. Can be used to search / update the key associcated with this
signature.
cpp: Return null key if the signature had no key.
+ commit 34e9dfee81958160f6604849b63369ae4de67417
* lang/cpp/src/verificationresult.cpp (Private): Add null key
to list when there is no key associated with the signature.
qt: Add simple verify test.
+ commit f131a5e72b0881cafcc3b0a91da8f050af2684a6
* lang/qt/tests/t-verify.cpp: New. Small test if a signature
returns a key with fingerprint.
* lang/qt/tests/Makefile.am: Add new test.
core: Fix w32 crash in find_program_in_dir.
+ commit 098a2da15b1b46b145add623dec0488abd39bd74
* src/w32-util.c (find_program_in_dir): Fix call to _gpgme_strconcat.
2016-10-08 Werner Koch <wk@gnupg.org>
core: New helper function gpgme_addrspec_from_uid.
+ commit 0ea2ff67900c243fff9f689658dcb23d1c0961cd
* src/gpgme.h.in: Add gpgme_addrspec_from_uid.
* src/gpgme.def, src/libgpgme.vers: Ditto.
* src/mbox-util.c (gpgme_addrspec_from_uid): New.
2016-10-06 Justus Winter <justus@g10code.com>
Add missing includes.
+ commit 857592041b8355cd58a7068c9f2446cf8dc0968f
* lang/cpp/src/key.cpp: Include <strings.h> for 'strcasecmp'.
* tests/gpg/t-cancel.c: Include <sys/select.h> for 'fd_set' and
friends.
2016-10-05 Andre Heinecke <aheinecke@intevation.de>
cpp: Bump Revision.
+ commit 8033cff441e9ea185531290273ec343f3402703c
* configure.ac (LIBGPGMEPP_LT_REVISION): Bump revision.
qt: Fix spelling error in WKSPublishJob.
+ commit 88c7e84ede4b6017cac3a396e8c87c2bd3a2bf58
* src/qgpgmewkspublishjob.cpp,
src/qgpgmewkspublishjob.h,
src/wkspublishjob.h,
tests/t-wkspublish.cpp: Fix spelling of received.
* src/configure.ac (LIBQGPGME_LT_CURRENT): Bump
accordingly.
qt: Disable tests that require a password for 2.0.
+ commit 24779c9e2301bd17fd328d65b0383e1cbc944119
* lang/qt/tests/t-encrypt.cpp: Disable tests that require
a password for 2.0.
Add warning flags for c++ compiler, too.
+ commit 4984cc93db6b55f2420a9abd844c074a5fb4ed0c
* configure.ac (CXXFLAGS): Add Wall and Wextra.
qt: Fix unused variable warnings.
+ commit 9d1df990386010e0581b542a76a4f5d85d8d11b5
* qt/src/qgpgmenewcryptoconfig.cpp,
qt/src/threadedjobmixin.h,
qt/tests/t-encrypt.cpp,
qt/tests/t-support.h,
qt/tests/t-wkspublish.cpp: Mark additional variables as unused.
cpp: Add support for URL Data encodings.
+ commit 370ee1aa802ec6a4030a39b2df7d24a0c47e5ac7
* lang/cpp/src/data.h (Data::Encoding): Extend enum.
* lang/cpp/src/data.cpp (Data::encoding),
Data::setEncoding): Support new values.
cpp: Fix gcc diagnostic push / pop.
+ commit 39dd7585f5a7d801942efcb375d6dd46d01d2968
* lang/cpp/src/context.cpp: Fix pragmas.
qt: Disable t-wkspublish test.
+ commit 52a91ccc6a25425d4374b77040e30efb6816940f
* lang/qt/tests/Makefile.am (TESTS): Remove t-wkspublish.
2016-09-30 Alon Bar-Lev <alon.barlev@gmail.com>
python: Link 'data.h' and 'config.h' into the builddir.
+ commit 453ab9d24ca48c9e01d21e1454d6b08de1938b76
* lang/python/Makefile.am: Link to the files.
* lang/python/gpgme.i: Update path.
* lang/python/setup.py.in: Do not add the top builddir to the include
path.
python: Add 'prepare' target.
+ commit 68fb8371a1dd5f4e05e50b1733f9996d139cbf38
* lang/python/Makefile.am: Add 'prepare' target.
2016-09-29 Andre Heinecke <aheinecke@intevation.de>
cpp, qt: Handle modified includedir installation.
+ commit 7302791c0d308c3284ac24a743035d27a0c0b6ba
* lang/cpp/src/Makefile.am,
lang/qt/src/Makefile.am: Replace resolved_includedir.
* lang/cpp/src/GpgmeppConfig.cmake.in.in,
lang/qt/src/QGpgmeConfig.cmake.in.in: Use resolved_includedir
instead of relying on a common installation prefix.
2016-09-27 Daniel Kahn Gillmor <dkg@fifthhorseman.net>
Clarify licensing.
+ commit 145392f07f42ef23ebcb83a917b4d8e2964e7aa8
* src/b64dec.c, src/mbox-util.c, src/mbox-util.h: These three files
are explicitly licensed under LGPL, but their comments suggest that
details about the warranty can be found in the GPL. Adjust comments
to refer to the correct license.
2016-09-27 Justus Winter <justus@g10code.com>
tests: Fix check for gpg versions not reporting the critical flag.
+ commit a423603f80d9eb653ce9c171662db2175d7456f5
* lang/python/tests/t-sig-notation.py: Also blacklist 2.0.x.
* tests/gpg/t-sig-notation.c: Likewise.
2016-09-26 Justus Winter <justus@g10code.com>
python: Correctly translate to size_t.
+ commit c38fabfea0601ed5f61e27e0bf43f8e74c67ce2a
* lang/python/gpgme.i: Correctly translate Python number to size_t.
python: Correctly translate off_t.
+ commit 1d80e7374aa3150306c86afe7acdc8e8eb05143f
* lang/python/gpgme.i: Improve int/long translations, correctly handle
off_t with large file support.
python: Include 'config.h'.
+ commit 3703a4723899d7563937b4b99f5bbe4dd8d3dfed
* lang/python/Makefile.am: Pass 'top_builddir' to 'setup.py'.
* lang/python/gpgme.i: Include 'config.h'.
* lang/python/helpers.c: Likewise.
* lang/python/helpers.h: Likewise.
* lang/python/setup.py.in: Make sure that 'config.h' can be found.
2016-09-23 Daniel Kahn Gillmor <dkg@fifthhorseman.net>
Fix spelling.
+ commit 95f38652f696476b38a040644eac40b4511d2b32
* lang/cpp/src/context.h, lang/qt/src/protocol.h,
lang/qt/src/wkspublishjob.h, src/data-identify.c, src/engine-gpg.c:
minor spelling cleanup.
move some file encodings to UTF-8.
+ commit a11450eb048df79a3f2b00ebef6d7cab07ad5054
* THANKS, doc/ChangeLog-2011, tests/ChangeLog-2011,
tests/gpg/geheim.txt: convert from iso 8859-1 to utf-8.
* lang/qt/src/dataprovider.cpp, lang/qt/src/qgpgmerefreshkeysjob.cpp,
lang/qt/src/qgpgmesecretkeyexportjob.cpp: replace U+FFFD REPLACEMENT
CHARACTER with proper U+00E4 LATIN SMALL LETTER A WITH DIAERESIS.
2016-09-23 Andre Heinecke <aheinecke@intevation.de>
tests: Check data after decryption.
+ commit 9b38817968b90caf73f123255fe427691e82fec4
* tests/gpgsm/t-decrypt.c (main): Check data matches expected.
Only print result if it does not.
cpp, qt: Include config.h.
+ commit a142f187b7ddb2728ec3e1743da4a0c4538ab40a
lang/cpp/src/callbacks.cpp,
lang/cpp/src/configuration.cpp,
lang/cpp/src/context.cpp,
lang/cpp/src/context_glib.cpp,
lang/cpp/src/context_qt.cpp,
lang/cpp/src/context_vanilla.cpp,
lang/cpp/src/data.cpp,
lang/cpp/src/decryptionresult.cpp,
lang/cpp/src/defaultassuantransaction.cpp,
lang/cpp/src/editinteractor.cpp,
lang/cpp/src/encryptionresult.cpp,
lang/cpp/src/engineinfo.cpp,
lang/cpp/src/eventloopinteractor.cpp,
lang/cpp/src/exception.cpp,
lang/cpp/src/gpgadduserideditinteractor.cpp,
lang/cpp/src/gpgagentgetinfoassuantransaction.cpp,
lang/cpp/src/gpgsetexpirytimeeditinteractor.cpp,
lang/cpp/src/gpgsetownertrusteditinteractor.cpp,
lang/cpp/src/gpgsignkeyeditinteractor.cpp,
lang/cpp/src/importresult.cpp,
lang/cpp/src/key.cpp,
lang/cpp/src/keygenerationresult.cpp,
lang/cpp/src/keylistresult.cpp,
lang/cpp/src/scdgetinfoassuantransaction.cpp,
lang/cpp/src/signingresult.cpp,
lang/cpp/src/tofuinfo.cpp,
lang/cpp/src/trustitem.cpp,
lang/cpp/src/verificationresult.cpp,
lang/cpp/src/vfsmountresult.cpp,
lang/qt/src/dataprovider.cpp,
lang/qt/src/defaultkeygenerationjob.cpp,
lang/qt/src/gpgme_backend_debug.cpp,
lang/qt/src/job.cpp,
lang/qt/src/qgpgmeadduseridjob.cpp,
lang/qt/src/qgpgmebackend.cpp,
lang/qt/src/qgpgmechangeexpiryjob.cpp,
lang/qt/src/qgpgmechangeownertrustjob.cpp,
lang/qt/src/qgpgmechangepasswdjob.cpp,
lang/qt/src/qgpgmedecryptjob.cpp,
lang/qt/src/qgpgmedecryptverifyjob.cpp,
lang/qt/src/qgpgmedeletejob.cpp,
lang/qt/src/qgpgmedownloadjob.cpp,
lang/qt/src/qgpgmeencryptjob.cpp,
lang/qt/src/qgpgmeexportjob.cpp,
lang/qt/src/qgpgmeimportfromkeyserverjob.cpp,
lang/qt/src/qgpgmeimportjob.cpp,
lang/qt/src/qgpgmekeyformailboxjob.cpp,
lang/qt/src/qgpgmekeygenerationjob.cpp,
lang/qt/src/qgpgmekeylistjob.cpp,
lang/qt/src/qgpgmelistallkeysjob.cpp,
lang/qt/src/qgpgmenewcryptoconfig.cpp,
lang/qt/src/qgpgmerefreshkeysjob.cpp,
lang/qt/src/qgpgmesecretkeyexportjob.cpp,
lang/qt/src/qgpgmesignencryptjob.cpp,
lang/qt/src/qgpgmesignjob.cpp,
lang/qt/src/qgpgmesignkeyjob.cpp,
lang/qt/src/qgpgmetofupolicyjob.cpp,
lang/qt/src/qgpgmeverifydetachedjob.cpp,
lang/qt/src/qgpgmeverifyopaquejob.cpp,
lang/qt/src/qgpgmewkspublishjob.cpp,
lang/qt/src/threadedjobmixin.cpp,
lang/qt/tests/run-keyformailboxjob.cpp,
lang/qt/tests/t-encrypt.cpp,
lang/qt/tests/t-keylist.cpp,
lang/qt/tests/t-keylocate.cpp,
lang/qt/tests/t-ownertrust.cpp,
lang/qt/tests/t-support.cpp,
lang/qt/tests/t-tofuinfo.cpp,
lang/qt/tests/t-wkspublish.cpp: Include config.h
2016-09-22 Werner Koch <wk@gnupg.org>
w32: Silence some warnings about unused parameters.
+ commit 583aafdd6870a7fb12a34d90993fd0f46928592c
* src/assuan-support.c (my_recvmsg, my_sendmsg, my_waitpid)
(my_socketpair) [W32]: Mark unused parameters.
core: Fix error checking in _gpgme_mkstemp.
+ commit c447b64d5989845a2ae2cf8fb30a92d2a0bd05af
* src/w32-util.c (_gpgme_mkstemp): Fix error checking.
(dlopen): Mark FLAGS as unused.
core: New helper function _gpgme_strconcat.
+ commit dc39552d01094eff2bef5f9fcd1c16928909d20e
* src/conversion.c: Include stdarg.h.
(do_strconcat): New.
(_gpgme_strconcat): New.
* src/util.h: Provide fallback for GPGRT_ATTR_SENTINEL.
(_gpgme_strconcat): New with sentinel.
* src/w32-util.c (find_program_in_dir): Replace malloc and stpcpy by
_gpgme_strconcat.
(find_program_at_standard_place): Ditto.
(_gpgme_set_default_gpg_name): Ditto.
(_gpgme_set_default_gpgconf_name): Ditto.
(_gpgme_mkstemp): Ditto.
(_gpgme_set_override_inst_dir): Repalce malloc and strcpy by strdup.
2016-09-22 Daiki Ueno <ueno@gnu.org>
tests: Add test for cancellation.
+ commit 7a6543c2dfeef874a34086c8f3eeb1dbdf1ce822
* tests/gpg/t-cancel.c: New file.
* tests/gpg/Makefile.am (tests_skipped): New variable, default to
t-genkey and t-cancel.
(noinst_PROGRAMS): Add $(tests_skipped).
* tests/gpg/.gitignore: Add t-cancel.
gpg: Add option --exit-on-status-write-error.
+ commit dee56820cabde60c43c9bf8281b8d411cb2ad644
* src/engine-gpg.c (gpg_new): Add --exit-on-status-write-error if the
engine version is latest enough to expect progress output from gpg.
tests: Fix select usage in t-eventloop.
+ commit d0cf6b15121c9b42dbcef243e5ce30c9996a449c
* tests/gpg/t-eventloop.c (do_select): Supply timeout value to select.
doc: Fix minor errors in I/O callback example.
+ commit 0aaf1dedd629446ab991fff76581b4b58e4872a0
* gpgme.texi (I/O Callback Example): Fix typos, add timeout to select,
and initialize mutex as recursive.
2016-09-21 Andreas Stieger <astieger@suse.com>
cpp: Avoid missing returns in non-void functions.
+ commit ae324b51ffa338b891387bff2657d60c1fd3ae40
* lang/cpp/src/context.cpp
(Context::signaturePolicyURL): return nullptr on default
(to_tofu_policy_t): add default case for unknown
* lang/cpp/src/key.cpp
(Key::primaryFingerprint): return nullptr on default
* lang/cpp/src/tofuinfo.cpp
(GpgME::TofuInfo::policy): add default case for unknown
2016-09-21 Werner Koch <wk@gnupg.org>
Release 1.7.0.
+ commit e7ab75379feadcc2894d9d4cde0f16ad0044780d
* configure.ac: Bump LT vesion to C26/A15/R0.
python: Create install dir.
+ commit 936928632b02d7cc2ac645543bb03e4c94285f05
* lang/python/Makefile.am (install-exec-local): Create dir.
2016-09-20 Werner Koch <wk@gnupg.org>
tests: Make "make -j distcheck" work in Python.
+ commit 0763357e39d140b068ee9838a5da08be75426d9f
* lang/python/Makefile.am (SUBDIRS): Make current dir fist.
* lang/python/tests/Makefile.am (xcheck): Depend on pubring-stamp.
(CLEANFILES): Remove private-keys-v1.d/gpg-sample.stamp.
(check-local): Remove.
(initial.py): Remove dependency.
(./pubring-stamp): Depend on conf files and the
private-keys-v1.d/gpg-sample.stamp file. Also replace use of
basename.
tests: Use --batch for gpg import.
+ commit bfb6890ded99f040fe8ecf910f927a136e4acfda
* lang/python/tests/Makefile.am (./pubring-stamp): Use --batch with
GPG to avoid Pinentries during import when using GnuPG >= 2.1.
Replace touch by echo.
* tests/gpg/Makefile.am (./pubring-stamp): Ditto.
tests: Improve portability.
+ commit 29207bcd3bf4de7264197db6758130375b16d9bb
* lang/qt/tests/Makefile.am (clean-local): Avoid non-portable "--"
* lang/python/Makefile.am (copystamp): Use well defined cp -R instead
of cp -r.
build: Create swdb file.
+ commit df7e92b4d585b7dce919c5a3aab9524f6e183cbe
* Makefile.am (distcheck-hook): New.
(dist-hook): s/VERSION/PACKAGE_VERSION/ for future compatibility.
2016-09-20 Justus Winter <justus@g10code.com>
python: Fix detection of Python available versions.
+ commit ef99b74eb12463db7da5806a316e3b55f8097c5c
* configure.ac: Test for 'PYTHON_VERSION' as 'AX_PYTHON_DEVEL' sets
'PYTHON' but clears the former.
2016-09-19 Andre Heinecke <aheinecke@intevation.de>
core: Remove moc artifact.
+ commit e3c35147d6adb754d4eb0781a54af2a8f0803663
* src/moc_kdpipeiodevice.cpp: Removed.
* src/Makefile.am (EXTRA_DIST): Remove moc_kdpipeiodevice.cpp.
qt: Improve README.
+ commit 3f92253e0e476d77aa11463bc51ade367985855f
* lang/qt/README: Add more content. Clearly note license difference.
cpp: Improve README.
+ commit 66febf9942c321d30b8770f6aa6cd6ce2315d34f
* lang/cpp/README: Add more content, move license to bottom.
qt: Add debug output for testTofuPolicy.
+ commit d438cb59a068b6f076e6bd70d3a2c46bc05ccb5c
* lang/qt/tests/t-tofuinfo.cpp (testTofuPolicy): Add
debug output.
2016-09-19 Ben Kibbey <bjk@luxsci.net>
core: Check for GPG_TTY as well as DISPLAY.
+ commit 9d62bacac7826cb73bb18fac7268f3d2df662d7b
* src/engine-assuan.c (llass_new): Update --ttyname from GPG_TTY.
* src/engine-g13.c (g13_new): Ditto.
* src/engine-gpg.c (gpg_new): Ditto.
* src/engine-uiserver.c (uiserver_new): Ditto.
* src/engine-gpgsm.c (gpgsm_new): Ditto.
2016-09-16 Andre Heinecke <aheinecke@intevation.de>
qt: Add test for setting tofu policy.
+ commit a8ff34fc3025af4079cede7f8f9fdf40189b8638
* lang/qt/tests/t-tofuinfo.cpp (testTofuPolicy): New.
qt: Add job for tofupolicy.
+ commit 77aecfb5c97cea1a99f1ff627748cf71767bac5c
* lang/qt/src/job.cpp, lang/qt/src/protocol.h,
lang/qt/src/protocol_p.h: Register job.
* lang/qt/src/qgpgmetofupolicyjob.cpp,
lang/qt/src/qgpgmetofupolicyjob.h,
lang/qt/src/tofupolicyjob.h: New.
* lang/qt/src/Makefile.am: Update accordingly.
cpp: Add support for gpgme_op_tofu_policy.
+ commit 4d384d7bfef044094695271576ca233625bb520a
* src/context.cpp, src/context.h (setTofuPolicy, setTofuPolicyStart):
New.
cpp: Declare sizes of tofu-info enums.
+ commit 32baac8cdec6fee51bdfc3c55cb2ee141e086df4
* lang/cpp/src/tofuinfo.h (Policy, Validity): Declare sizes.
2016-09-16 Werner Koch <wk@gnupg.org>
cpp: Silence use of deprecated function warning.
+ commit bd24db313d860ae46d37776dcf1067455d1b9880
* lang/cpp/src/context.cpp (GpgME): Use pragma to silence wardning.
core: Document the version a function has been deprecated.
+ commit b615316168f4d33311909d4056b236d13c69488f
* src/gpgme.h.in (_GPGME_DEPRECATED): Change to take versio numbers
for documentation. Change all places.
(_GPGME_DEPRECATED_OUTSIDE_GPGME): Ditto.
* lang/python/gpgme-h-clean.py: Adjust RE.
core: Map GPGME_STATUS_EOF to the empty string.
+ commit 3d6340e8c59ee11a95e03fb213ad9b228be47833
* src/status-table.c (_gpgme_status_to_string): Return "" for EOF.
* src/engine-gpg.c (read_status): Ditto. The old code accidently used
GPGME_STATUS_EOF which is the integer 0 and neiteyr NULL nor a string.
2016-09-16 Justus Winter <justus@g10code.com>
Kai Michaelis <kai@gnupg.org>
python: Release the GIL during calls into GPGME.
+ commit 6af7bee076bacbc0cdfe7de342bce43ca5671b3b
* lang/python/helpers.c (pyme_raise_callback_exception): Re-acquire
the Global Interpreter Lock.
(pyPassphraseCb, pyme_set_passphrase_cb, pyProgressCb,
pyme_set_progress_cb, pyStatusCb, pyme_set_status_cb,
_pyme_interact_cb, pyDataReadCb, pyDataWriteCb, pyDataSeekCb,
pyDataReleaseCb, pyme_data_new_from_cbs, _pyme_assuan_data_cb,
_pyme_assuan_inquire_cb, _pyme_assuan_status_cb): Likewise.
* lang/python/setup.py.in: Make 'gpgme-config' emit the correct
cflags, and SWIG generate code to release the GIL before calling us.
2016-09-16 Justus Winter <justus@g10code.com>
python: Adapt to 'gpgme_op_interact'.
+ commit a458e7fe2006d92bd5a838e2747fb66bbac4b1b8
* lang/python/examples/inter-edit.py: Update example.
* lang/python/gpgme.i (gpgme_edit_cb_t): Turn into
'gpgme_interact_cb_t'.
* lang/python/helpers.c (_pyme_edit_cb): Turn into
'_pyme_interact_cb_t'.
* lang/python/private.h (_pyme_edit_cb): Likewise.
* lang/python/pyme/constants/__init__.py: Replace numeric status codes
with the keywords.
* lang/python/pyme/constants/status.py: Likewise.
* lang/python/pyme/core.py (Context.interact): New method.
(Context.op_edit): Deprecate, update docstring, implement using
Context.interact.
* lang/python/tests/t-edit.py: Test both interfaces.
2016-09-16 Werner Koch <wk@gnupg.org>
core: Remove stub to try implementing gpg < 2.1 support for createkey.
+ commit 268e251b802cc7c19831722d7e3a52777a0f412f
* src/engine-gpg.c (gpg_createkey_legacy): Remove.
(gpg_genkey): Remove call.
core: Fix setting og the verification result.
+ commit 1f9641dd0fb08e4a3df3b507b974a3f78887920f
* src/verify.c (parse_new_sig): Proberly handle the RC in an ERRSIG
status.
2016-09-15 Werner Koch <wk@gnupg.org>
core: New function gpgme_op_interact, deprecate gpgme_op_edit.
+ commit ed1f2700a73060e2615697491ea9e49ded4293e6
* src/gpgme.h.in (gpgme_interact_cb_t): New.
(GPGME_INTERACT_CARD): New.
(gpgme_op_interact_start, gpgme_op_interact): New.
* src/libgpgme.vers, src/gpgme.def: Add new functions.
* src/edit.c (op_data_t): Rename fnc to fnc_old and change users. Add
fnc.
(edit_status_handler): Call old or new callback.
(command_handler): Ditto.
(interact_start): New.
(gpgme_op_interact_start, gpgme_op_interact_start): New.
* src/status-table.c (_gpgme_status_to_string): New.
* tests/gpg/t-edit.c (edit_fnc): Rename to interact_fnc and change
type of STATUS. Use gpgme_io_writen.
(main): s/gpgme_op_edit/gpgme_op_interact/.
core: Minor change of the gpgme_op_edit semantics.
+ commit d2b72d3cc19fe2a7d548dac38d55e069e0c9a904
* src/edit.c (command_handler): Handle special error code.
* src/engine-gpg.c (read_status): Ditto.
* src/engine-gpgsm.c (status_handler): Ditto.
* src/engine-uiserver.c (status_handler): Ditto.
* src/util.h (GPG_ERR_FALSE): Define for older libgpg-error versions.
2016-09-14 Werner Koch <wk@gnupg.org>
core: New function gpgme_op_tofu_policy.
+ commit 7c37719d79345a665ec2f4570e3f257033b58c62
* src/gpgme.h.in (gpgme_op_tofu_policy_start): New function.
(gpgme_op_tofu_policy): New function.
* src/libgpgme.vers, src/gpgme.def: Add new functions.
* src/tofupolicy.c: New.
* src/Makefile.am (main_sources): Add that file.
* src/context.h (ctx_op_data_id_t): Add OPDATA_TOFU_POLICY.
* src/engine.c (_gpgme_engine_op_tofu_policy): New.
* src/engine-backend.h (engine_ops): Add funcptr 'tofu_policy'.
Adjust all engine initializations.
* src/engine-gpg.c (gpg_tofu_policy): New.
(_gpgme_engine_ops_gpg): Register this function.
* tests/run-tofu.c: New.
* tests/Makefile.am (noinst_PROGRAMS): Add it.
core: Defer implementation of gpgme_op_createkey with gpg < 2.1.
+ commit d79dcb78d867aaf55b85aea117c4ae6035a1531a
* src/engine-gpg.c (gpg_createkey_legacy): Mark unused variables.
core: New function gpgme_op_keysign.
+ commit bfd2bd0ccc9fed8284ef932ac788d4ca0dba0336
* src/gpgme.h.in (gpgme_op_keysign_start, gpgme_op_keysign): New.
(GPGME_KEYSIGN_LOCAL): New.
(GPGME_KEYSIGN_LFSEP): New.
(GPGME_KEYSIGN_NOEXPIRE): New.
* src/context.h (ctx_op_data_id_t): Add OPDATA_KEYSIGN.
* src/keysign.c: New.
* src/Makefile.am (main_sources): Add keysig.
* src/libgpgme.vers, src/gpgme.def: Add gpgme_op_keysign_start.
* src/engine.c (_gpgme_engine_op_keysign): New.
* src/engine-backend.h (engine_ops): Add 'keysign' and adjust all
engine initializers.
* src/engine-gpg.c (_add_arg): Add args PREFIX and ARGLEN and change
callers to set them.
(add_arg_pfx): New.
(add_arg_len): New.
(gpg_keysign): New.
(_gpgme_engine_ops_gpg): Set keysign to gpg_keysign.
* tests/run-keysign.c: New.
* tests/Makefile.am (noinst_PROGRAMS): Add run-keysign.
2016-09-14 Justus Winter <justus@g10code.com>
python: Clarify that we support Python 2.7 too.
+ commit 594c3b8b052e60b6be77ed532fe46549133a9726
* lang/python/README: Use 'Python' instead of 'Python 3'.
* lang/python/pyme/version.py.in: Likewise.
* lang/python/setup.py.in: Add classifier for 2.7, drop 3 only.
python: Trim imports.
+ commit 4011b2b2a1050f0837e989da3db9b5459e71ccd6
* lang/python/examples/encrypt-to-all.py: Drop unused import of 'os'.
* lang/python/examples/signverify.py: Likewise.
* lang/python/examples/simple.py: Likewise.
* lang/python/examples/verifydetails.py: Likewise.
python: Improve error handling.
+ commit 44d18200d5ffe8691e18d93ce6c534660702b982
* lang/python/gpgme.i (gpgme_engine_info_t): Improve error handling.
python: Adapt to TOFU changes.
+ commit f6cd560ca74248dd719a37cfb34386148727a92d
* lang/python/pyme/results.py (TofuInfo): Drop.
(Signature): The TOFU information moved to the key.
python: Improve build system integration.
+ commit 99db351288d5bb075f124ef10e540e25bc36b70a
* configure.ac: Try to compile a Python module for each version.
* m4/m4_ax_swig_python.m4: Drop unused file.
2016-09-14 Werner Koch <wk@gnupg.org>
core: New function gpgme_op_revuid.
+ commit c943380b7a2cc9b32f81c22224fc6f92e8ea8469
* src/engine.h (GENKEY_EXTRAFLAG_REVOKE): New.
* src/genkey.c (adduid_start): Rename to addrevuid_start. Add arg
REVOKE and pass it as extraflags. Remove useless ARMOR extraflag.
Adjust callers.
(gpgme_op_revuid_start, gpgme_op_revuid): New.
* src/gpgme.def, src/libgpgme.vers: Add them.
* tests/run-genkey.c: Add option --revuid.
core: Change a parameter for the engine's genkey function.
+ commit c22f5884c50557f54704f4becc5a8c1ee0749547
* src/engine.h (GENKEY_EXTRAFLAG_ARMOR): New.
* src/engine-backend.h (engine_ops): Rename USE_ARMOR in genkey to
EXTRAFLAGS.
* src/engine.c (_gpgme_engine_op_genkey): Ditto.
* src/engine-gpg.c (gpg_createkey_from_param): Ditto and test the
flags.
(gpg_createkey_legacy): Ditto.
(gpg_createkey): Ditto.
(gpg_addkey): Ditto.
(gpg_genkey): Ditto.
2016-09-14 Justus Winter <justus@g10code.com>
python: Build for both Python2 and Python3.
+ commit 24b4162d908b48a92660020be0b776c2874fb05a
* NEWS: Update.
* configure.ac: Check for multiple Python versions.
* lang/python/Makefile.am: Build and install for both Python versions.
* lang/python/tests/Makefile.am: Test both versions.
* lang/python/tests/run-tests.py: New test runner.
2016-09-14 Werner Koch <wk@gnupg.org>
core: New function gpgme_op_adduid.
+ commit 3210f3e4725afc5ee2810b9a1361918ec9c42ca4
* src/genkey.c: Replace most error codes GPG_ERR_INV_VALUE by
GPG_ERR_INV_ARG.
(struct op_data_t): Add field UIDMODE.
(genkey_status_handler): Use UIDMODE.
(adduid_start): New.
(gpgme_op_adduid_start, gpgme_op_adduid): New.
* src/gpgme.def, src/libgpgme.vers: Add them.
* tests/run-genkey.c: Add option --adduid.
core: New function gpgme_op_createsubkey.
+ commit cc353701b0fde4c811ddc1e9a91b852dfe9f4e06
* src/genkey.c (createsubkey_start): New.
(gpgme_op_createsubkey_start, gpgme_op_createsubkey): New.
* src/gpgme.def, src/libgpgme.vers: Add them.
* src/engine-gpg.c (gpg_createkey): Factor some code out to ...
(gpg_add_algo_usage_expire): new.
(gpg_addkey): Implement.
* tests/run-genkey.c: Add option --addkey.
2016-09-13 Werner Koch <wk@gnupg.org>
core: Use const char * where appropriate.
+ commit 51f9acbca935c5287d9a28205037b0923e9a65f5
core: Cast away the common const problem with spawn and argv.
+ commit 686a065f639ef006e33c164e282d787bcd169754
* src/dirinfo.c (read_gpgconf_dirs): Use a cast to assignd to ARGV.
core: Fix condition-always-true warning in trace macro.
+ commit 3009e6162eaa39adaaf45f06fc4f88c7153360ee
* src/data-compat.c (old_user_read): Cast AMT.
core: Mark unused function args.
+ commit 4a200146b602349eebb4eac2e102357748d7ba5b
tests: Mark lots of unused vars and fix const mismatches.
+ commit 9064eebdc05e7149c2c8cc899fbd7874622fb769
tests: Use gpgme_io_write in passhrase callbacks.
+ commit 4491ef0a9a15d3b307d1ade37ff620ef9fcb2478
* tests/gpg/t-support.h (passphrase_cb): Use gpgme_io_write.
* tests/gpgsm/t-support.h (passphrase_cb): Ditto.
* tests/run-support.h (passphrase_cb): Ditto.
core: Do not pass const char* to functions taking a char*.
+ commit 3972f476e00f27d41a0aeabcb66600905b6737bd
build: Use more compiler warnings.
+ commit 0510591c36591816a6ff3f87a04451001b7ed46f
* configure.ac: Add useful compiler warnings.
core: New function gpgme_op_create_key.
+ commit 00c501d296da287bec2fd6a0e3912abfbde90a98
* src/engine-backend.h (engine_ops): Change prototype of genkey.
* src/engine-gpgsm.c (gpgsm_genkey): Change accordingly.
* src/engine-gpg.c (gpg_genkey): Change it to a dispatcher.
(gpg_createkey_from_param): New for the old functionality.
(gpg_createkey_legacy): New. Stub for now.
(gpg_createkey): New.
(gpg_addkey): New. Stub for now.
(gpg_adduid): New. Stub for now.
* src/engine.c (_gpgme_engine_op_genkey): Add new args.
* src/genkey.c (op_data_t): Add field ERROR_CODE.
(parse_error): New.
(genkey_status_handler): Parse ERROR status line.
(genkey_start): Use NULL/0 for the new args.
(createkey_start): New.
(gpgme_op_createkey_start, gpgme_op_createkey): New.
* src/gpgme.def, src/libgpgme.vers: Add gpgme_op_createkey_start and
gpgme_op_createkey.
* src/gpgme.h.in (_gpgme_op_genkey_result): Add fields PUBKEY and
SECKEY.
(GPGME_CREATE_SIGN): New.
(GPGME_CREATE_ENCR): New.
(GPGME_CREATE_CERT): New.
(GPGME_CREATE_AUTH): New.
(GPGME_CREATE_NOPASSWD): New.
(GPGME_CREATE_SELFSIGNED): New.
(GPGME_CREATE_NOSTORE): New.
(GPGME_CREATE_WANTPUB): New.
(GPGME_CREATE_WANTSEC): New.
(GPGME_CREATE_FORCE): New.
* tests/run-genkey.c: New.
* tests/Makefile.am (noinst_PROGRAMS): Add it.
2016-09-13 Justus Winter <justus@g10code.com>
python: Handle slight differences between Python 2 and 3.
+ commit 70a3be27a509a1b5ea7372bee93d83c5019427ff
* lang/python/helpers.c (pyDataWriteCb): Handle Python integers being
returned on Python 2.
(pyDataSeekCb): Likewise.
* lang/python/pyme/core.py (Data.__init__): Fix testing for string
argument.
(Data.new_from_filepart): Likewise.
* lang/python/pyme/util.py (is_a_string): New function.
* lang/python/tests/t-encrypt-large.py (read_cb): Force evaluation of
generator.
* lang/python/tests/t-idiomatic.py: Partly skip test on Python 2.
* lang/python/tests/t-verify.py (check_result): Here, the difference
between 2 and 3 really matters. We cannot change the char *
conversion in Python 2 without breaking all existing applications, and
using bytestrings in Python 3 would be very inconvenient.
python: Fix types and error handling.
+ commit 4abff7d750a1abf5b388a4c87ec321fc3e4aed10
* lang/python/helpers.c (_pyme_edit_cb): Drop the const.
(_pyme_assuan_{data,inquire,status}_cb): Fix error handling.
2016-09-12 Justus Winter <justus@g10code.com>
python: Avoid Python3-only form of super().
+ commit c0c50318bd8ef6c8119ad9fdc53ad9087ded4c32
* lang/python/pyme/core.py (GpgmeWrapper.__repr__): Use more
compatible form of super.
(GpgmeWrapper.__setattr__): Likewise.
(Context.__init__): Likewise.
(Data.__init__): Likewise.
python: Make type translation compatible with Python 2.7.
+ commit 1d5bbbf1185a0d1f82750f10b69dad3999f7ef4c
* lang/python/gpgme.i: Avoid functions not available in Python 2.7.
* lang/python/helpers.c: Likewise.
python: Avoid hardcoding the interpreter.
+ commit 70999d81618b3d3ae6b61a43be2ce703ad284275
* lang/python/setup.py.in: Avoid hardcoding the interpreter.
python: Do not rely on subprocess.DEVNULL.
+ commit b48b852a846129914d6c63ec7b47388cdcf6acca
* lang/python/setup.py.in: Do not rely on subprocess.DEVNULL.
tests: Fix version comparison.
+ commit dfd99ab50c3bc1d6745b6f682791e4885e8d8a9a
* tests/gpg/t-sig-notation.c: Fix version comparison.
tests: Make signature notation test compatible with older GnuPGs.
+ commit a0263ad282d350b548cbbc27e96f196d9217d040
* lang/python/tests/t-sig-notation.py: Only check the critical flag
when GnuPG >= 2.1.13 is used.
* tests/gpg/t-sig-notation.c: Likewise.
2016-09-12 Andre Heinecke <aheinecke@intevation.de>
qt: Fix some includes.
+ commit d480f6b701894f78f3f4016d69c0e3b87939930b
* lang/qt/src/qgpgmekeyformailboxjob.cpp: Explicitly include
QStringList.
* lang/qt/tests/t-support.h, lang/qt/tests/t-support.cpp: Move
includes into impl. Explicitly include QDir.
2016-09-12 Justus Winter <justus@g10code.com>
qt: Fix tofu test.
+ commit 7b9e6ea376d04fb4694ed22369abaae92ce3ec86
* lang/qt/tests/t-tofuinfo.cpp: Adjust member names.
2016-09-07 Werner Koch <wk@gnupg.org>
core,cpp: Extend the TOFU information.
+ commit 120b14783c0312d782dc08ce4949a6209d5ccc7b
* src/gpgme.h.in (struct _gpeme_tofu_info): Rename FIRSTSEEN to
SIGNFIRST and LASTSEEN to SIGNLAST. Add ENCRFIST and ENCRLAST.
* src/keylist.c (parse_tfs_record): Parse to ENCRFIRST and ENCRLAST.
* src/verify.c (parse_tofu_stats): Ditto.
* tests/run-keylist.c (main): Adjust and print encrypt stats.
* tests/run-verify.c (print_result): Ditto.
* lang/cpp/src/tofuinfo.h (TofuInfo): Rename firstSeen to signFirst
and lastSeen to signLast. Add encrCount, encrFirst and encrLast.
* lang/cpp/src/tofuinfo.cpp (encrCount, encrFirst, encrLast): New.
2016-09-06 Andre Heinecke <aheinecke@intevation.de>
tests: Set passphrase cb in t-encrypt-mixed.
+ commit 151da95470f174dc770b2111890ad650a1697276
* tests/gpg/t-encrypt-mixed.c (main): Set passphrase cb.
core: Check for gpg version for loopback mode.
+ commit e8cb143c8337b122a6790f769ddb0a97c4baccd3
* src/engine-gpg.c (build_argv): Check for version 2.1.0
before adding pinentry-mode.
core: Fix passphrase cb for mixed sym encrypt.
+ commit efe7e11dfa2ff911b477ce748292e53e7a50347e
* src/encrypt.c (encrypt_start): Handle SYMMETRIC flag.
* src/encrypt-sign.c (encrypt_sign_start): Ditto.
2016-09-05 Andre Heinecke <aheinecke@intevation.de>
qt: Clarify comment and strings in tofuinfo test.
+ commit ab3fbdbd05cfd1b039bb5b1eb3941fbb4bcf6307
* lang/qt/tests/t-tofuinfo.cpp (testTofuSignCount)
(testTofuKeyList): Ensure distinct messages. Clarify comment.
qt: Enable signcount checks in tofuinfo test.
+ commit 965b842fad6ec6fbd8902f3a32119abcd0728fe4
* lang/qt/tests/t-tofuinfo.cpp: Enable checks for signcount.
cpp: Add convenience update function to a key.
+ commit 79439e76cc5b302222874a1f9e93665cb12801ac
* lang/cpp/src/key.cpp (Key::update): New.
* lang/cpp/src/key.h: Update accordingly.
cpp: Add ostream operators for key and uid.
+ commit 444d85ace0dddff5c511961927052d9946035b00
* lang/cpp/src/key.cpp (Key, UserID): Add ostream operator.
* lang/cpp/src/key.h: Update accordingly.
qt: Add missing header redirection.
+ commit 8a39a595eb802b80a6ad756b0ee8939e9733e86f
* lang/qt/src/keyformailboxjob.h,
lang/qt/src/qgpgmekeyformailboxjob.h: Fix includes.
qt: Include cpp before core directory.
+ commit e3a4697894cc5a93c295e84bb10c743bc7fdc87e
* lang/qt/src/Makefile.am (AM_CPPFLAGS): Include cpp before core.
2016-08-25 Andre Heinecke <aheinecke@intevation.de>
qt: Fix 2.1 t-support copy.
+ commit 05570bd3d05fb3d7934c1122f0d5ef5fdbaa7974
* lang/qt/src/t-support.cpp (copyKeyring): Fix seckey copy.
qt: Fix and extend TofuInfo test.
+ commit 9fc72e928bf2cf239bd3b0facdf33ceb1acc975b
* lang/qt/tests/t-tofuinfo.cpp: Delete executed jobs.
(testTofuKeyList): New.
(testSupported): Activate for 2.1.16
(signAndVerify): Disable sigcount tests.
qt: Fix keyring copy in tests.
+ commit c875f07e559a7c53fc173b4c3f9f5715f3fbb8f8
* lang/qt/test/t-encrypt.cpp,
lang/qt/test/t-tofuinfo.cpp: Assert on copy failure.
* lang/qt/test/t-support.cpp (copyKeyrings): Fix path.
qt: Add generic flag support for keylistjobs.
+ commit 4e37d0bb1255558ce20e1a5ac83a2d06a37f8b0b
* lang/qt/src/keylistjob.h (addMode): New.
* lang/qt/src/qgpgmekeylistjob.h (addMode): New.
* lang/qt/src/qgpgmekeylistjob.cpp (addMode: New.
qt: Ensure that current src dir is included first.
+ commit 5a92cc96da183ebb19867a2a910f53ba41e76ae9
* lang/qt/src/Makefile.am: Reorder include directives.
cpp: Add WithTofu Keylist Mode.
+ commit f311b92ceaedb12c9e00a722b6b47bbe6b50871e
* lang/cpp/src/context.cpp: Handle WithTofu.
* lang/cpp/src/global.h (KeyListMode): Add WithTofu.
* lang/cpp/src/util.h (add_to_gpgme_keylist_mode_t): Handle WithTofu.
qt: Fix tofuinfo test when gpg is gpg2.
+ commit 053e6e0a7b8ea38ad9d4160c84814867bbb9fcf6
* lang/qt/tests/t-support.cpp (QGpgMETest::copyKeyrings): New helper.
* lang/qt/tests/t-support.h: Declare.
* lang/qt/tests/t-encrypt.cpp: use it
* lang/qt/tests/t-tofuinbo.cpp: ditto.
qt: Remove unused variable in test.
+ commit f08904b810d77d87c66d9c7875c4e7f2bde5dd92
* t-wkspublish.cpp (testWKSPublishCreate): Remove context.
qt: Add test for wkspublishjob.
+ commit df04b232b8897f030534f8c3fbc87064edf8ae7d
* lang/qt/tests/t-wkspublish.cpp: New.
* lang/qt/tests/Makefile.am: Update accordingly.
qt: Add WKSPublishJob.
+ commit 94420b05775122b25885c66ac67f77c59d01644d
* lang/qt/src/Makefile.am: Add new files.
* lang/qt/src/job.cpp: Include moc / subclass stub.
* lang/qt/src/protocol.h: Add virtual for new job.
* lang/qt/src/protocol_p.h: Add job.
* lang/qt/src/wkspublishjob.h: Interface for WKSPublishJob.
* lang/qt/src/qgpgmewkspublishjob.cpp,
lang/qt/src/qgpgmewkspublishjob.h: New.
Cpp: Change firstSeen / lastSeen return values.
+ commit de7b67f9b2e6bd43a036fa0bcc6a8ca4f5b10986
* lang/cpp/src/tofuinfo.cpp,
lang/cpp/src/tofuinfo.h (TofuInfo::firstSeen, TofuInfo::lastSeen):
Change return values to unsigned long and update doc.
Cpp: Add wrapper for gpgme_get_dirinfo.
+ commit abcd9a283ee8f81870622c8e1dbdc7aad38c0358
* lang/cpp/src/context.cpp (dirInfo): New.
* lang/cpp/src/global.h (dirInfo): New.
Cpp: Add support for spawn engine.
+ commit ece8b02a839d6fc566fea7b6e59fabff164f6cf5
* lang/cpp/src/context.cpp (Context::spawn, Context::spawnAsync): New.
* lang/cpp/src/context.h: Add prototypes.
(SpawnFlags): New.
* lang/cpp/src/global.h (SpawnEngine): Added.
2016-08-25 Werner Koch <wk@gnupg.org>
core: Add GPGME_KEYLIST_MODE_WITH_TOFU.
+ commit 9ee103957e4136337b92d238283f8ef30fd4a7c5
* src/gpgme.h.in (GPGME_KEYLIST_MODE_WITH_TOFU): New.
* src/engine-gpg.c (gpg_keylist_build_options): Use that.
* src/keylist.c: Include limits.h.
(parse_tfs_record): New.
(keylist_colon_handler): Support TFS record.
* tests/run-keylist.c: Include time.h.
(isotimestr): New.
(main): Add option --tofu. Print TOFU info.
* tests/run-verify.c: Include time.h.
(isotimestr): New.
(print_result): Use isotimestr for TOFU dates.
2016-08-24 Werner Koch <wk@gnupg.org>
core: Adjust for TOFU_STATS change in gnupg 2.1.16.
+ commit 38798fee5b539d6153a8a7856152959412ee59b5
* src/gpgme.h.in (_gpgme_tofu_info): Change 'firstseen' and 'lastseen'
to a timestamp value.
* src/verify.c (parse_tofu_stats): Do not cap these values at UINT_MAX.
core: Set the 'encrcount' field in gpgme_tofu_info_t.
+ commit 1eefc2d43c0adb2ce516f8e3509ace2fb562e401
* src/verify.c (parse_tofu_stats): Set ENCRCOUNT field.
cpp: Get rid of AssuanResult due to its deprecation.
+ commit e20b0f0201543834f15c5d50cd3b2ece69a35d70
* lang/cpp/src/assuanresult.cpp: Remove.
* lang/cpp/src/assuanresult.h: Remove.
* lang/cpp/src/Makefile.am: Remove these files.
* lang/cpp/src/context.cpp: Remove header assuanresult.h
(assuanTransact): Change return type to Error. Use
gpgme_op_assuan_transact_ext.
(startAssuanTransaction): Change return type to Error.
(assuanResult): Remove
* lang/cpp/src/context.h (assuanResult): Adjust for changes.
2016-08-24 Andre Heinecke <aheinecke@intevation.de>
Qt: Adapt (disabled) tofuinfo test to new API.
+ commit d2e40fb7adf667f3e2d2457ee4c646ea4d4d88b3
* lang/qt/tests/t-tofuinfo.cpp: Switch to UID based API.
Cpp: Add Key to signature.
+ commit 7c5a4974b71c30e824cbfcb3a0a70064e5ed5adb
* lang/cpp/src/verificationresult.cpp,
lang/cpp/src/verificationresult.h (Signature::key): New.
Cpp: Use fpr field for primaryFingerprint.
+ commit 40ea1c85773cbe324557c34b3a4282f609fcdaf6
* lang/cpp/src/key.cpp (Key::primaryFingerprint): Return
fpr value if available.
2016-08-23 Andre Heinecke <aheinecke@intevation.de>
Cpp: Move tofuinfo from signature to userid.
+ commit 799b168243e6499ac01bf59e0656547f353a2589
* lang/cpp/src/key.cpp (UserID::tofuInfo): New.
* lang/cpp/src/key.h: Update accordingly.
* lang/cpp/src/tofuinfo.cpp: Remove dropped fields.
* lang/cpp/src/tofuinfo.h: Update accordingly.
* lang/cpp/src/verificationresult.cpp,
lang/cpp/src/verificationresult.h: Remove tofu info.
* lang/qt/tests/t-tofuinfo.cpp: Disable for now.
2016-08-23 Werner Koch <wk@gnupg.org>
core: Put the protocol into a TOFU created key object.
+ commit 2972c44bd7e97b2169dea9c4a49d9754afdae3f0
* src/verify.c (parse_tofu_user): Add arg 'protocol' and store it in
the KEY.
(_gpgme_verify_status_handler): Pass protocol.
core: Change the way TOFU information are represented.
+ commit be4ff75d7d5ac6ed15feb245ef3cec59b4bad561
* src/gpgme.h.in (struct _gpgme_signature): Remove field 'tofu'. Add
field 'key'.
(struct _gpgme_key): Add field 'fpr'.
(struct _gpgme_user_id): Add field 'tofu'.
(struct _gpgme_tofu_info): Remove fields 'address' and 'fpr'.
* src/key.c (gpgme_key_unref): Release TOFU and FPR.
* src/keylist.c (keylist_colon_handler): Store the fingerprint of the
first subkey also in KEY.
* src/verify.c (release_tofu_info): Remove.
(release_op_data): Release KEY.
(parse_tofu_user): Rewrite for new data structure.
(parse_tofu_stats): Ditto.
(parse_tofu_stats_long): Ditto.
* tests/run-verify.c (print_result): Ditto.
* tests/run-keylist.c (main): Print more fields.
core: Extend gpgme_user_id_t with 'address'.
+ commit 3955dce06e9d056599e5ec7d40301e66b9305195
* src/mbox-util.c, src/mbox-util.h: Adjust for use in gpgme.
* src/Makefile.am (main_sources): Add mbox-util.
* src/key.c (_gpgme_key_append_name): Set 'address' field of uid.
(gpgme_key_unref): Free it.
2016-08-22 Werner Koch <wk@gnupg.org>
core: New code for parsing mail addresses.
+ commit 26c5ba528ce1411d96655952ec48359105695c0f
* src/mbox-util.c: New.
* src/mbox-util.h: New.
core: Add new items for gpgme_get_dirinfo.
+ commit 24e61984c9532924135c57b8ff98489a2d3bd4a3
* src/dirinfo.c (WANT_SYSCONFDIR, WANT_LIBEXECDIR, WANT_LIBDIR): New.
(WANT_DATADIR, WANT_LCOALEDIR, WANT_AGENT_SSH_SOCKET): New
(WANT_DIRMNGR_SOCKET): New.
(dirinfo): Add fields 'sysconfdir', 'bindir', 'libexecdir', 'libdir',
'datadir', 'localedir', 'agent_ssh_socket', and 'dirmngr_socket'.
(parse_output): Set these fields.
(get_gpgconf_item): Return them.
(gpgme_get_dirinfo): Likewise.
core: Base gpgme_get_dirinfo(uiserver-socket) on the socket dir.
+ commit c9e7dcb100d807583d8e312da459561138231376
* src/dirinfo.c (dirname_len): New.
(parse_output): Change computation of UISRV_SOCKET.
2016-08-21 Werner Koch <wk@gnupg.org>
core: New commands --lang and --have-lang for gpgme-config.
+ commit 3e60788810f93cfcd7f08e5882aff32ed7b6f831
* configure.ac (GPGME_CONFIG_AVAIL_LANG): New ac_subst.
* src/gpgme-config.in (avail_lang): Add commands --lang and
--have-lang.
2016-08-18 Andre Heinecke <aheinecke@intevation.de>
core: Remove (now) useless diagnostic.
+ commit 30f156280f18500ee522db58aecd40711c8af685
* src/w32-io.c(_gpgme_io_spawn): Remove spawnhelper not found
diagnostic.
core: Fail loudly in case w32 spawner not found.
+ commit 9cf983b0199950c8f8cccee2cb8e45aafcba9fd1
* src/w32-io.c (_gpgme_io_spawn): Show a message box in
case gpgme-w32spawn.exe not found.
2016-08-17 Andre Heinecke <aheinecke@intevation.de>
Cpp: Fix some pedantic warnings.
+ commit 64194b0f8df1afe6135cd119fd3216fc8db68033
* lang/cpp/src/context.cpp,
lang/cpp/src/context.h (Context::getKeysFromRecipients): Remove
ignored / invalid const qualifier.
* lang/cpp/src/result.h: Don't shadow error function in ctor.
2016-08-16 Werner Koch <wk@gnupg.org>
core: New global flag "require-gnupg".
+ commit 8c09dd9989bcd434a8cb5997770cb8414b96bd5c
* src/gpgme.c (gpgme_set_global_flag): Add flag.
* src/engine.c (engine_minimal_version): New variable.
(_gpgme_set_engine_minimal_version): New function.
(gpgme_get_engine_info): Check that flag.
* tests/run-keylist.c (main): New option --require-gnupg.
core: Simplify setting of dummy versions.
+ commit b7b0e7b5bfefd51c8092ea54f262b18aebf78128
* src/engine.c (_gpgme_engine_info_release): Do not assert but free
FILE_NAME.
(gpgme_get_engine_info): Provide default for VERSION and REQ_VERSION.
Use calloc instead of malloc.
(_gpgme_set_engine_info): Ditto.
* src/engine-assuan.c (llass_get_version): Return NULL.
(llass_get_req_version): Ditto.
* src/engine-spawn.c (engspawn_get_version): Ditto.
(engspawn_get_req_version): Ditto.
* src/engine-uiserver.c (uiserver_get_version): Ditto.
(uiserver_get_req_version): Ditto.
2016-08-12 Andre Heinecke <aheinecke@intevation.de>
Qt: Add test for progress signal of encryptjob.
+ commit 391e55411cda11446ca9de4dd0dc2b54d3e6fff5
* lang/qt/tests/t-encrypt.cpp (testProgress): New.
Cpp: Provide size-hint for seekable and mem data.
+ commit df7bbf5a66576a5a320b54c8f6ad52bc84f0e833
* lang/cpp/src/data.cpp (GpgME::Data::Data): Set size-hint for
mem and DataProvider based Data.
2016-08-12 Werner Koch <wk@gnupg.org>
core: Make use of the "size-hint" in engine-gpg.
+ commit fe1e8e71aa18b4ac6471292b2894b8859f42f7c8
* src/engine-gpg.c: Include data.h.
(add_input_size_hint): New.
(gpg_decrypt, gpg_encrypt, gpg_encrypt_sign, gpg_sign)
(gpg_verify): Call new function,
* tests/run-encrypt.c (status_cb): Print to stderr.
(progress_cb): New.o
(main): Add option --progress. Print full-status lines. Provide a
size for the input data.
core: Add gpgme_data_set_flag to add more meta data to data objects.
+ commit 293d1736911fd5e77b8cec305168b35b2420c612
* src/gpgme.h.in (gpgme_data_set_flag): New public function.
* src/data.c (gpgme_data_set_flag): New.
(_gpgme_data_get_size_hint): New.
* src/data.h (strucy gpgme_data): Add field 'size_hint'.
* src/gpgme.def, src/libgpgme.vers: Add new function.
* src/conversion.c (_gpgme_string_to_off): New.
2016-08-12 Andre Heinecke <aheinecke@intevation.de>
Qt: Fix defaultkeygenerationjob build.
+ commit 75c974c4e0a31981325f7d151bd13f2523f5df20
* lang/qt/src/defaultkeygenerationjob.cpp: Include moc.
2016-08-11 Andre Heinecke <aheinecke@intevation.de>
Qt: Add DefaultKeyGenerationJob.
+ commit 105f5446e69db00291164397cf0d8e68374cf420
* lang/qt/src/defaultkeygenerationjob.cpp,
lang/qt/src/defaultkeygenerationjob.h: New.
* lang/qt/src/Makefile.am: Update accordingly.
Qt: Ensure all public classes are exported.
+ commit 59e2251a083b0ed61b3ab6d47015cef7cc6ceb05
* src/abstractimportjob.h,
src/cryptoconfig.h,
src/deletejob.h,
src/exportjob.h,
src/importfromkeyserverjob.h,
src/importjob.h,
src/keygenerationjob.h,
src/keylistjob.h,
src/listallkeysjob.h,
src/refreshkeysjob.h,
src/signencryptjob.h,
src/specialjob.h,
src/verifydetachedjob.h: Export classes.
Qt: Add KeyForMailboxJob.
+ commit 8c5abc8d932affab4bc79a85e3f98f6f6b982ae8
* lang/qt/src/job.cpp: Include moc and make subclass.
* lang/qt/src/keyformailboxjob.h,
lang/qt/src/qgpgmekeyformailboxjob.cpp,
lang/qt/src/qgpgmekeyformailboxjob.h: New.
* lang/qt/tests/run-keyformailboxjob.cpp: New manual test.
* lang/qt/tests/Makefile.am: Add run-keyformailboxjob.
* lang/qt/src/Makefile.am: Update accordingly.
* lang/qt/src/protocol.h, lang/qt/src/protocol_p.h: Add
keyformailboxjob.
2016-08-10 Werner Koch <wk@gnupg.org>
doc: Get rid of version.texi.
+ commit b7d99e02188b7907b09fec3032fc1fd82fc2668a
* configure.ac (CC_FOR_BUILD): New.
* doc/mkdefsinc.c: New. Taken from GnuPG and modified for gpgme.
* doc/Makefile.am (EXTRA_DIST): Add defsincdate and mkdefsinc.c
(BUILT_SOURCES): new.
(gpgme.texi): New dependency.
(mkdefsinc, defsincdate, defs.inc): New rules.
(dist-hook): New.
* doc/gpgme.texi: Include defs.inc. Remove version.texi.
build: Declare all languages for make dist.
+ commit 48691db97b759d67aa7b49c36bb704b5806ade2e
* lang/Makefile.am (DIST_SUBDIRS): New.
core: Do not identify PNG files as PGP signatures.
+ commit a9168185ba97aa1d827315cd8017899bf904aded
* src/data-identify.c (next_openpgp_packet): Blacklist PNG files.
2016-08-10 Andre Heinecke <aheinecke@intevation.de>
Cpp: Handle empty recipients consistently.
+ commit 09667a6006986a782af98ca1de4d6521e1b8f353
* lang/cpp/src/context.cpp (Context::getKeysFromRecipients):
New helper.
(Context::encrypt, Context::startEncryption, Context::signAndEncrypt)
(Context::startCombinedSigningAndEncryption): Use new helper.
* lang/cpp/src/context.h (Context::getKeysFromRecipients): Add
as private helper.
core: Handle ENCRYPT_SYMMETRIC also for sig & enc.
+ commit b602d8bc7bd726afb52dc60cc07e4609e88d4511
* src/engine-gpg.c (gpg_encrypt_sign): Handle ENCRYPT_SYMMETRIC
flag.
Qt: Remove unused variable.
+ commit d467018ce36f5be36751267c3b6079e8c1ee5d8a
* lang/qt/src/qgpgmerefreshkeysjob.cpp (slotStatus): Remove
unused variable typ.
Qt: Create TestPassphraseProvider on stack.
+ commit a27d7755d071aad42efc2aa4ea3899ba7b17f8bf
* lang/qt/tests/t-encrypt.cpp, lang/qt/tests/t-tofuinfo.cpp: Create
TestPassphraseProvider on stack.
Cpp: Clarify ownership of provider classes.
+ commit 21d5e71d486da8e37cf53f2b968646b39a6daa72
* lang/cpp/src/context.h: Note that the context does not take
ownership of providers.
2016-08-10 Justus Winter <justus@g10code.com>
tests: Fix memory leak.
+ commit 04f994d5db6db0575dc73c2356c7d51424e2d9fe
* tests/gpg/t-encrypt-mixed.c (main): Free 'text2'.
2016-08-10 Andre Heinecke <aheinecke@intevation.de>
core: Ensure err is initalized in gpg_encrypt.
+ commit 270887309f4b673b13e58c29ea3989c56989590e
* src/engine-gpg.c (gpg_encrypt): Initialize err.
Qt: Fix t-keylist moc include.
+ commit 0c222e1b3cabe1a8b84a2877420cdd5df56171b5
* lang/qt/tests/t-keylist.cpp: Don't include t-support.moc
2016-08-09 Andre Heinecke <aheinecke@intevation.de>
Qt: Clean up debug output in tests.
+ commit 969f223d8de21d7c8b0f7646bbf8dbb5864e8d03
* lang/qt/tests/t-support.cpp: Remove accidentally commited
debug output.
Qt: Add encryption test and refactor testsuite.
+ commit f209ec8f581ae597b37f2e3a5e452e4b53b2d4c7
* lang/qt/tests/Makefile.am: Add t-encrypt and t-support.
* lang/qt/tests/t-support.cpp, lang/qt/tests/t-support.c (QGpgMETest):
New. Class to handle common cleanup / init.
* lang/qt/tests/t-keylist.cpp,
lang/qt/tests/t-keylocate.cpp,
lang/qt/tests/t-ownertrust.cpp,
lang/qt/tests/t-tofuinfo.cpp: Inherit QGpgMETest.
* lang/qt/tests/t-encrypt.cpp: New. Test Symetric and Asymectric
encryption. Mixed encryption test is disabled.
Qt: Add support for EncryptJobs with generic flags.
+ commit 34b456c3fb9e59788b07a75441da482bb28bda87
* lang/qt/src/encryptjob.h, lang/qt/src/signencryptjob.h,
lang/qt/src/qgpgmeencryptjob.h, lang/qt/src/qgpgmeencryptjob.cpp,
lang/qt/src/qgpgmesignencryptjob.cpp,
lang/qt/src/qgpgmeencryptjob.cpp: Add start and exec overloads
that accept generic EncryptFlags.
Cpp: Add support for all EncryptionFlags.
+ commit 17372393798ea5e2d6838f3dd1e001dd4a66c941
* lang/cpp/src/context.h (EncryptionFlags): Extend.
* lang/cpp/src/context.cpp (encryptflags2encryptflags): Ditto.
Cpp: Fix simple symmetric encryption.
+ commit bf776ce94cf454f1b3f1645b1cde09cd1c54324b
* lang/cpp/src/context.cpp (Context::encrypt): If no recipients
are provided encrypt with NULL and not an empty array.
core: Add support for mixed symmetric and asym enc.
+ commit 3d2f027d0f40e7ec4ab48cee89ff0ee10b423566
* src/gpgme.h.in (gpgme_encrypt_flags_t): New flag
GPGME_ENCRYPT_SYMMETRIC.
* src/engine-gpg.c (gpg_encrypt): Also add --symmetric if the flag
is given.
* NEWS: Mention new flag.
* tests/run-encrypt.c (show_usage): Extend for --symmetric.
(main): Handle --symmetric.
(main): Set passphrase_cb in loopback mode.
(main): Fix encrypt call if no recipients are given.
* tests/gpg/t-encrypt-mixed.c: New.
* tests/gpg/Makefile.am (c_tests): Add new test.
* doc/gpgme.texi: Document new flag.
2016-08-08 Werner Koch <wk@gnupg.org>
core: Let GPGME_PROTOCOL_ASSUAN pass Assuan comments through.
+ commit b5e16b036f0045524a583d8a366d8a3366fc0005
* src/engine-assuan.c (llass_new): Set ASSUAN_CONVEY_COMMENTS,
2016-08-08 Andre Heinecke <aheinecke@intevation.de>
Prepend LD_LIBRARY_PATH for python tests.
+ commit ab6f66d676581cb497e581e4af40e2fe5bff507b
* lang/python/tests/Makefile.am (TESTS_ENVIRONMENT): Prepend path
instead of setting the value.
2016-08-05 Justus Winter <justus@g10code.com>
python: Clean up and modernize examples.
+ commit 2a613e87156b23c4aa6aa5ce38505cb285de6a18
* lang/python/examples/Examples.rst: Delete file.
* lang/python/examples/t-edit.py: Likewise. This is actually a test
case and has been moved to 'tests'.
* lang/python/examples/assuan.py: New file.
* lang/python/examples/decryption-filter.py: Likewise.
* lang/python/examples/delkey.py: Modernize.
* lang/python/examples/encrypt-to-all.py: Likewise.
* lang/python/examples/exportimport.py: Likewise.
* lang/python/examples/genkey.py: Likewise.
* lang/python/examples/inter-edit.py: Likewise.
* lang/python/examples/sign.py: Likewise.
* lang/python/examples/signverify.py: Likewise.
* lang/python/examples/simple.py: Likewise.
* lang/python/examples/testCMSgetkey.py: Likewise.
* lang/python/examples/verifydetails.py: Likewise.
2016-08-04 Werner Koch <wk@gnupg.org>
core: Extend gpgme_subkey_t to carry the keygrip.
+ commit 6f3dc66634e30d86aa6250c4ac22f9b8f7ec1be9
* src/gpgme.h.in (struct _gpgme_subkey): Add file 'keygrip'.
* src/key.c (gpgme_key_unref): Free KEYGRIP.
* src/keylist.c (keylist_colon_handler): Parse GRP records.
* src/engine-gpg.c (gpg_keylist_build_options): Do not use
--with-fingerprint options for gpg versions >= 2.1.15.
* tests/run-keylist.c (main): Print subkeys and keygrips.
2016-08-03 Justus Winter <justus@g10code.com>
python: Add a nicer interface to list keys.
+ commit 56e26b54da9f16961209275d7a61883d3ea898ca
* lang/python/pyme/core.py (Context.keylist): New method.
* lang/python/tests/t-keylist.py: Test new method.
2016-08-02 Justus Winter <justus@g10code.com>
python: Add a flag identifying in-tree builds.
+ commit 4c8265d32ddff5960a464b8d4e8d7d2258495b2e
* lang/python/helpers.c (pyme_in_tree_build): New variable.
* lang/python/helpers.h (pyme_in_tree_build): New declaration.
* lang/python/pyme/version.py.in (in_tree_build): New variable.
* lang/python/setup.py.in: Rework macro handling, set 'IN_TREE_BUILD'
as appropriate.
python: Fix build system integration.
+ commit 0bd7d8c1977183abc414e11aafa26a4f834ca2a5
* lang/python/Makefile.am: Be more careful when cleaning the build
directory, we must not delete the generated file 'pyme/version.py'.
doc: Document the Assuan protocol.
+ commit 135185b7ef2225aa5e8c54a6cf1265d3e6cbbe48
* doc/gpgme.texi: Document the Assuan protocol.
2016-07-28 Justus Winter <justus@g10code.com>
python: Fix out-of-tree build.
+ commit 4e728de8421e2ade2061786aaebcdae3f60da3b8
* lang/python/MANIFEST.in: Add 'private.h'.
python: Improve error handling.
+ commit 5a7c7a86f7e8eaf10e37138617a2d838f9d4466f
* lang/python/pyme/core.py (Context.protocol): Check that the engine
is usable before setting the protocol.
(Context._errorcheck): Add missing functions.
src: Fix dummy engine versions.
+ commit b9e6eacd06ffeb36854c208aa4325cff3e3dfbbe
Previously, 'gpgme_engine_check_version' failed for these protocols
because the version parser failed to parse the dummy versions.
* src/engine-assuan.c (llass_get_version): Use a version triple that
the parser can understand.
(llass_get_req_version): Likewise.
* src/engine-spawn.c (engspawn_get_version): Likewise.
(engspawn_get_req_version): Likewise.
* src/engine-uiserver.c (uiserver_get_version): Likewise.
(uiserver_get_req_version): Likewise.
python: Drop superfluous imports and trim public interface.
+ commit 2ff58fcbd5c060dac3a7feec478819d2c5a164ec
* lang/python/pyme/__init__.py: Avoid leaking low-level 'gpgme', make
sure the main module looks nice and tidy, appease pyflakes.
* lang/python/pyme/errors.py: Appease pyflakes.
* lang/python/pyme/util.py: Avoid leaking low-level 'gpgme' into the
module namespace.
* lang/python/pyme/version.py.in: Likewise.
* lang/python/tests/t-keylist.py: Drop superfluous imports.
* lang/python/tests/t-sig-notation.py: Likewise.
* lang/python/tests/t-sign.py: Likewise.
* lang/python/tests/t-signers.py: Likewise.
python: Rename compiled SWIG module.
+ commit 2f754440f28e8f81babdf7efa6186edbc8ad99fd
Avoid the name pygpgme, as this is the name of another popular Python
binding for GPGME.
This commit renames the compiled Python module produced by SWIG.
* lang/python/Makefile.am: Rename the compiled Python module.
* lang/python/gpgme.i: Likewise.
* lang/python/pyme/core.py: Likewise.
* lang/python/pyme/errors.py: Likewise.
* lang/python/pyme/util.py: Likewise.
* lang/python/pyme/version.py.in: Likewise.
* lang/python/setup.py.in: Likewise.
python: Rename exported functions.
+ commit b5aa05c3b261c3846ebbcf76e7505cff5459f918
Avoid the name pygpgme, as this is the name of another popular Python
binding for GPGME.
This commit renames all functions that are exported to the Python
world.
* lang/python/helpers.c: Rename all exported functions.
* lang/python/helpers.h: Likewise.
* lang/python/pyme/core.py: Likewise.
python: Rename private functions.
+ commit 1d2f22aae668ce136cacd254875e118dc1faa6a2
Avoid the name pygpgme, as this is the name of another popular Python
binding for GPGME.
This commit renames all functions that are not exported to the Python
world.
* lang/python/gpgme.i: Rename all private functions.
* lang/python/helpers.c: Likewise.
* lang/python/helpers.h: Likewise.
* lang/python/private.h: Likewise. Also move the SWIG runtime helper
prototypes here.
python: Support the Assuan engine.
+ commit de69fa496c09386d5e99747670d6887cf52dd09e
* lang/python/gpgme.i: Add typemaps for the Assuan protocol callbacks.
* lang/python/helpers.c (_pyme_assuan_{data,inquire,status}_cb): New
functions.
* lang/python/private.h (_pyme_assuan_{data,inquire,status}_cb): New
prototypes.
* lang/python/pyme/core.py (Context.assuan_transact): New method.
* lang/python/pyme/util.py (percent_escape): New function.
* lang/python/tests/Makefile.am (py_tests): Add new test.
* lang/python/tests/t-protocol-assuan.py: New file.
python: Improve engine information handling.
+ commit 355d7072863ac1f0f725e77141a59f3ed8a5e4af
* lang/python/gpgme.i (gpgme_engine_info_t): Wrap engine infos.
* lang/python/pyme/core.py (Context.engine_info): New property.
(Context.{g,s}et_engine_info): Improve docstrings.
* lang/python/pyme/results.py (EngineInfo): New class.
python: Add accessors for the protocol.
+ commit 78f7bf4dcf75206faae5776c2ee4166628313532
* lang/python/pyme/core.py (Context.__init__): Add 'protocol'
parameter.
(Context.protocol): New accessors.
python: Expose less functions to the Python world.
+ commit 3d4dc3f0218234a27103bdb6f93b17c0703b71a2
* lang/python/Makefile.am (EXTRA_DIST, COPY_FILES): Add new file.
* lang/python/gpgme.i: Include new file and add comments.
* lang/python/helpers.c: Include new file.
* lang/python/helpers.h: Move functions we do not need to expose...
* lang/python/private.h: ... here.
2016-07-19 Ben Kibbey <bjk@luxsci.net>
Fix including nil bytes in keylist output.
+ commit 6a7ee33abd5059f5ae2f70a7dd9f610c16552f8e
* src/gpgme-tool.c (cmd_keylist,gt_result): use strlen().
2016-07-15 Justus Winter <justus@g10code.com>
python: Make GPGME's version easily accessible.
+ commit e545ca3f682b615ce447c186a2c73489a32b0592
* lang/python/pyme/version.py.in (gpgme_versionstr): New variable.
python: Add an idiomatic interface.
+ commit 1f318b7aaaa77672fab117d54fe75221780df83c
* configure.ac: Bump required Python version.
* lang/python/pyme/__init__.py: Update docstring. Import Context and
Data.
* lang/python/pyme/core.py (Context.encrypt): New function.
(Context.decrypt): Likewise.
(Context.sign): Likewise.
(Context.verify): Likewise.
* lang/python/pyme/errors.py: Add new errors.
* lang/python/pyme/util.py (process_constants): Rework and return the
inserted keys.
* lang/python/tests/Makefile.am (EXTRA_DIST): Add new keys.
* lang/python/tests/encrypt-only.asc: New file.
* lang/python/tests/sign-only.asc: Likewise.
* lang/python/tests/initial.py: Mark key 'Alpha' as trusted, import
new keys.
* lang/python/tests/support.py: Add fingerprints of known keys.
(in_srcdir): New function.
(print_data): Handle bytes too.
(mark_key_trusted): New function.
* lang/python/tests/t-decrypt-verify.py: Adjust test. Test idiomatic
interface.
* lang/python/tests/t-decrypt.py: Test idiomatic interface.
* lang/python/tests/t-encrypt-sign.py: Likewise.
* lang/python/tests/t-encrypt-sym.py: Likewise.
* lang/python/tests/t-encrypt.py: Likewise.
* lang/python/tests/t-idiomatic.py: Simplify.
* lang/python/tests/t-keylist.py: Adjust to newly trusted key.
* lang/python/tests/t-sign.py: Likewise. Test idiomatic interface.
* lang/python/tests/t-signers.py: Likewise.
* lang/python/tests/t-verify.py: Likewise.
2016-07-14 Andre Heinecke <aheinecke@intevation.de>
Qt: Disable keylocate test for gnupg < 2.0.10.
+ commit d2f2cbd297c4d2f2c3264ecc3ffb7a2b3a70bd55
* lang/qt/tests/t-keylocate.cpp: Disable test for gnupg < 2.0.10
Cpp: Add EngineInfo::Version class.
+ commit 41de1ab904eaddffb2de17b1de8ef41e462daabe
* lang/cpp/src/engineinfo.cpp (EngineInfo::engineVersion): New.
* lang/cpp/src/engineinfo.h (EngineInfo::engineVersion): Declare.
(EngineInfo::Version): Small helper to work with versions.
Qt: Fix usage of ignore-invalid-option in tests.
+ commit e7f4c364732660c6cda25720b7dbc5b1c917e368
* Makefile.am (pubring-stamp): Fix config.
Qt: Fix tests if gpg2 is gpg.
+ commit e4c0645c1eea9380d80a20895eb83c9dd7228776
* lang/qt/tests/Makefile.am (pubring-stamp): Loopback and provide
passphrase on command line when importing.
2016-07-14 Justus Winter <justus@g10code.com>
python: Fix test.
+ commit fddcc62abd57cb04e84861abd3991c7d529c2464
* lang/python/tests/t-keylist.py: Do not assume key alpha is trusted
yet.
2016-07-13 Werner Koch <wk@gnupg.org>
build: Update config.{guess,sub} to {2016-05-15,2016-06-20}.
+ commit a9670d152a4598aef1ae0960a79fb6f5d8db55ad
* build-aux/config.guess: Update.
* build-aux/config.sub: Update.
core: New GPGME_DATA_ENCODING_MIME.
+ commit d8d5f5a16712244fe6eff860b6ac5f007b1bf870
* src/gpgme.h.in (GPGME_DATA_ENCODING_MIME): New.
* src/data.c (gpgme_data_set_encoding): Adjust check.
* src/engine-gpg.c (have_gpg_version): New.
(gpg_encrypt, gpg_encrypt_sign): Pass flag '--mimemode'.
(gpg_sign): Ditto.
* lang/cpp/src/data.h (GpgME): Add MimeEncoding.
* lang/cpp/src/data.cpp (encoding, setEncoding): Support MimeEncoding.
* src/gpgme-tool.c (server_data_encoding): Add flag --mime.
core: Pass the engine's version string to the engine's new function.
+ commit 2095b1573a8196ba3efdf817324d1b3ee05cbb93
* src/engine-backend.h (engine_ops): Add arg 'version' to NEW.
* src/engine-assuan.c (llass_new): Add dummy arg 'version'.
* src/engine-g13.c (g13_new): Ditto.
* src/engine-gpgconf.c (gpgconf_new): Ditto.
* src/engine-gpgsm.c (gpgsm_new): Ditto.
* src/engine-spawn.c (engspawn_new): Ditto.
* src/engine-uiserver.c (uiserver_new): Ditto.
* src/engine.c (_gpgme_engine_new): Pass version string to the new
function.
* src/engine-gpg.c (struct engine_gpg): Add field 'version'.
(gpg_new): Add arg 'version'.
(gpg_release): Free VERSION.
2016-07-13 Andre Heinecke <aheinecke@intevation.de>
Cpp: Add feature enum for new identify.
+ commit 537cb871fd59f3a20c697a046715e6339ff6633b
* lang/cpp/src/context.cpp (supported_features2): Add
BinaryAndFineGrainedIdentify
* lang/cpp/src/global.h (Feature2): ditto.
2016-07-12 Justus Winter <justus@g10code.com>
python: Port more tests.
+ commit 1bff47ee58bcf9d0016fb7ac7e37cbf075abd059
* lang/python/pyme/core.py (Context.op_keylist_all): Add missing
'op_keylist_end'.
(Context.op_trustlist_all): Fix function. Add missing
'op_trustlist_end'.
* lang/python/tests/Makefile.am (pytests): Add new files.
* lang/python/tests/t-import.py: New file.
* lang/python/tests/t-keylist.py: Likewise.
* lang/python/tests/t-trustlist.py: Check alternate interface.
python: Improve python packaging.
+ commit 57b51685528153f5a50ab0999feec25c83190501
* lang/python/Makefile.am: Sign source releases, and upload them.
* lang/python/setup.py.in: Add categories.
2016-07-12 Andre Heinecke <aheinecke@intevation.de>
m4: Don't set fpic for qt on windows.
+ commit 938f7e9c8b466594d05c0347fe627b225263a6a6
* m4/qt.m4 (FIND_QT): Do not set fpic for windows.
m4: Use LIBS instead of LDFLAGS for Qt libs.
+ commit 744978cce8f9dfb2363b9d274ee99f25cfcf0e40
* m4/qt.m4: Modify LIBS instead of LDFLAGS for link test.
Bump version to 1.7.0.
+ commit bf742fb88545689addfca18192baf2f56a1895e1
* configure.ac(mym4_version_minor),
(mym4_version_micro): Next release will be 1.7.0
Qt: Install CamelCase forward includes.
+ commit fd87c4679c4bfe19390fa2047dff23bb213a4b18
* lang/qt/src/Makefile.am (camelcase_headers): New. Create and install
CamelCase headers.
Qt: Export VerifyDetachedJob.
+ commit 86ab2ee2d603111d24500b8d64a9a1dd82f8bdc0
* lang/qt/src/verifydetachedjob.h (VerifyDetachedJob): Export it.
Qt/Cpp: Add version headers.
+ commit b03c48cfb06faae7d7033a0532f319cbcf13f18a
* lang/cpp/src/gpgmepp_version.h.in,
lang/qt/src/qgpgme_version.h.in: New. Version information.
* lang/qt/src/Makefile.am, lang/cpp/src/Makefile.am: Add them.
* configure.ac: Configure them.
Qt/Cpp: Add license blurb to export headers.
+ commit 362b8cdf4e0d5cd54ec2b325508dcdefac686f2c
* lang/cpp/src/gpgmepp_export.h,
lang/qt/src/qgpgme_export.h: Add license blurb.
2016-07-11 Justus Winter <justus@g10code.com>
python: Fix distcheck.
+ commit ce662891373eba6cce1cf8df516cb2370970737e
* lang/python/Makefile.am (EXTRA_DIST): Add missing files.
2016-07-11 Andre Heinecke <aheinecke@intevation.de>
m4: Add compile / link check for qt.
+ commit ed070313155a1c79a57ba69f4299f2aefc65fad7
* m4/qt.m4 (FIND_QT): Check if a qt application can be compiled and
linked.
2016-07-11 Justus Winter <justus@g10code.com>
python: Enable out-of-tree build of pyme bindings.
+ commit 007382ce94a6318557370c440f7d609a030a119e
* lang/python/MANIFEST.in: Update manifest template.
* lang/python/Makefile.am: Copy more files, move generation of files
to Python build script, add 'sdist' target to build a Python source
distribution.
* lang/python/gpgme-h-clean.py: Add code to build 'errors.i'.
* lang/python/setup.py.in: Generate files, enable out-of-tree builds.
python: Do not depend on access to internal data structures.
+ commit 98cba522c906115efcba1f8cc0bec7e5edb51ecd
* lang/python/gpgme.i (gpgme_data_t): Rework so that it works without
access to the definition of 'struct gpgme_data'.
* lang/python/helpers.c (object_to_gpgme_data_t): Add assertion.
python: Make result wrapping backwards compatible.
+ commit c53f87c5f9ca63119152f41dcebfb175d4df2cef
* lang/python/pyme/results.py (Result.__init__): Skip missing fields.
2016-07-11 Andre Heinecke <aheinecke@intevation.de>
Qt: Fix memleaks in tests.
+ commit bfa8ac7e02c16790ee5bd3b42c26699f4821d72e
* lang/qt/tests/t-keylist.cpp(cleanupTestCase): Ensure that
posted events are handled for autodeletion.
(testSingleKeylistSync): delete job.
* lang/qt/tests/t-ownertrust.cpp(cleanupTestCase): Ditto
* lang/qt/tests/t-ownertrust.cpp(testChangeOwnerTrust): Delete
keylistjobs.
* lang/qt/tests/t-keylocate.cpp(cleanupTestCase): Ditto
Qt: Add some general Protocol documentation.
+ commit b1f42e8f25ada220ec8e4762cfebc3a49b1f7d56
* lang/qt/src/protocol.h (Protocol): Add doc.
Qt: Disable t-tofuinfo tests.
+ commit 02babb29612d554c37b63a49f78acc45653b557e
* lang/qt/tests/t-tofuinfo.cpp: Disable tests.
2016-07-08 Justus Winter <justus@g10code.com>
src: Fix error handling.
+ commit de74fe59feef9adc858ac04004880bfd44315d0d
* src/encrypt.c (encrypt_status_handler): Fix error handling, ||
conflates errors.
python: Fix raising stashed exceptions.
+ commit 8a93f345b701332270c9829a4d0a93537f98a8d8
Fixes an issue with newer versions of Python.
* lang/python/helpers.c (pygpgme_raise_callback_exception): Be more
careful when restoring the exception.
2016-07-07 Justus Winter <justus@g10code.com>
python: Fix distcheck.
+ commit 52efcf1ee9fc8ba4c6bd23d8fe4f5f7993ba9fb1
* lang/python/INSTALL: Drop obsolete file.
* lang/python/Makefile.am (EXTRA_DIST): Add missing files.
(CLEANFILES): Remove generated files.
(clean-local): Fix permissions of copied files.
* lang/python/tests/Makefile.am (TESTS): Use our own setup and
teardown scripts.
(EXTRA_DIST): Add missing files.
* lang/python/tests/final.py: New file.
* lang/python/tests/initial.py: Likewise.
qt: Fix distcheck.
+ commit 38c408560c6ebc3ea5eeeade01d38750bf5799e5
* lang/qt/src/Makefile.am (qgpgme_headers): Add missing file.
(CLEANFILES): Add generated file.
* lang/qt/tests/Makefile.am (clean-local): Remove private keys.
cpp: Fix distcheck.
+ commit 49286ac1c82c480e2c718f828c57da9778ccd0b9
* lang/cpp/src/Makefile.am (CLEANFILES): Remove generated file.
2016-07-06 Andre Heinecke <aheinecke@intevation.de>
Qt: Add test for publicKeyAlgorithmAsString.
+ commit fc0267233239b42e9fb74a8acd7511503e287a9e
* lang/qt/tests/t-keylist.cpp (testPubkeyAlgoAsString): New.
Cpp: Expose gpgme_pubkey_algo_name.
+ commit e41ae4db9e70d9aebf80ebbd4ce03977435c2ccf
* lang/cpp/src/key.cpp (Subkey::publicKeyAlgorithmAsString): New
static variant.
* lang/cpp/src/key.h: Declare function. Clarify comment about name
mismatch.
Qt: Add check for pubkeyAlgo in t-keylist.
+ commit 9f93346d21271b916f15d80420669f5d659a40de
* lang/qt/tests/t-keylist.cpp (testSingleKeyListSync): Check
pubkeyAlgo.
Cpp: Add PubkeyAlgo enum.
+ commit c28007d0407bcc3621b8266d6d77eb0d069aec35
* lang/cpp/src/key.h (Subkey::PubkeyAlgo): New enum.
(Subkey::publicKeyAlgorithm): Change return type.
* lang/cpp/src/key.cpp (Subkey::publicKeyAlgorithm): Use enum.
Qt: Fix include order when buildin test.
+ commit 4934893e27a50f5715dcd4d2907ecbe629921b32
* lang/qt/tests/Makefile.am (AM_CPPFLAGS): Include cpp before
gpgme src directory.
Revert "Qt: More robust lookup of Cpp's context.h"
+ commit 7a8c04f66d382dc49d962ad18c46d7ad332ccc0f
* lang/qt/src/threadedjobmixin.h: Revert using full path
for context.h
2016-07-05 Andre Heinecke <aheinecke@intevation.de>
Qt: Fix test build with Qt < 5.4.0.
+ commit 49a6ee50587c9d4b6f07e60ce1a939c863e7f15c
* lang/qt/tests/t-keylist.cpp,
lang/qt/tests/t-keylocate.cpp,
lang/qt/tests/t-ownertrust.cpp: Use old style SIGNAl syntax for
QSignalSpy
Qt: More robust lookup of Cpp's context.h.
+ commit 47bfbc9026b49b9918359af5fcc1621aab0d1065
* lang/qt/src/threadedjobmixin.h: When building qgpgme look for
context.h in the full cpp subdirectory.
w32: Fallback to 2.1 reg key for gpgconf search.
+ commit 72b83ffc4d7581f4efef3bd7c261d7d7424bcf0e
* src/w32-util.c (_gpgme_get_gpgconf_path): Fallback to 2.1 installer
registry key.
2016-07-04 Andre Heinecke <aheinecke@intevation.de>
Doc: Document pinentry mode.
+ commit 329ab93f7ed862d7f4c0501fca5355936a74ac52
* doc/gpgme.texi (Passphrase Callback): Document as context
attribute.
(gpgme_set_passphrase_cb): Note that this requires LOOPBACK mode
with GnuPG 2.1.
Qt: Add testTofuSignCount.
+ commit 8fa9b5696ca9f8386971e6f36646536f9579ceaa
* src/lang/qt/tests/t-tofuinfo.cpp(testTofuSignCount): New.
(initTestCase): Set gpg-agent loopback pinentry config.
(signAndVerify): Helper for tofuTestSignCount.
Qt: Add test passphrase provider.
+ commit efb5059b9b6e81db7b0c016aa9fb70abe98308ea
* lang/qt/tests/t-support.h (TestPassphraseProvider): New.
* lang/qt/tests/Makefile.am (t_tofuinfo_SOURCES): Add t-support.h
Cpp: Add support for TOFU_CONFLICT sigsum.
+ commit 80498ab662238a31325e78c0037ea6752f680a37
* lang/cpp/src/verificationresult.cpp (GpgME::Signature::Summary):
Handle TOFU_CONFLICT.
* lang/cpp/src/verificationresult.h (Summary): Add TofuConflict.
Cpp: Add support for pinentry_mode.
+ commit d75c118aae18e20f08dbbb69c7998e1f3694ccd0
* lang/cpp/src/context.cpp (Context::pinentryMode): Return mode.
(Context::setPinentryMode): Set mode.
* lang/cpp/src/context.h (PinentryMode): Add enum.
2016-07-01 Andre Heinecke <aheinecke@intevation.de>
Qt: Add test for TofuInfo.
+ commit fbd6ac4655ebf56d91ebd9a4ff499c8319fcd087
* lang/qt/tests/t-tofuinfo.cpp: New.
* lang/qt/tests/Makefile.am: Update accordingly.
Cpp: Add TofuInfo to signatures.
+ commit 93c5d420fcfe275aeff2b3d5ce99629edbe6625d
* lang/cpp/src/tofuinfo.cpp, lang/cpp/src/tofuinfo.h: New class.
* lang/cpp/src/verificationresult.cpp (Signature::tofuInfo): New.
(VerificationResult::Private): Handle tofu info.
(GpgME::operator<<(std::ostream &os, const Signature &sig)): Include
TofuInfo in dump.
* lang/cpp/src/verificationresult.h (Signature::tofuInfo): New.
* lang/cpp/src/Makefile.am (main_sources, gpgmepp_headers): Add
new files.
* configure.ac (LIBGPGMEPP_LT_REVISION): Bump for new API.
core: Clarify documentation of tofu_stats address.
+ commit 948ce7d1edf12ecb5080a4816ca15f495d6393f5
* src/gpgme.h.in: Mention that Address is not always in addr-spec.
core: Fix identify for armored detached sigs.
+ commit 570bf2a648f14b34c4c45d3890b7300529a82d37
* src/data-identify.c (basic_detection): Return signature for
signature.
2016-06-27 Andre Heinecke <aheinecke@intevation.de>
Cpp: Expose new data_identify values.
+ commit 15fc5c34c88ecbb61272705af60f7054b41c57f7
* lang/cpp/src/data.cpp (GpgME::Data::type): Handle PGP Encrypted
and Signature.
* lang/cpp/src/data.h: Add values accordingly.
Cpp: Do not treat KEYEXPIRED as error.
+ commit 82d484c852d07958ac93efb3d2d7b7726fbb5231
* lang/cpp/src/editinteractor.cpp (status_to_error): No error
for KEYEXPIRED.
2016-06-24 Andre Heinecke <aheinecke@intevation.de>
tests: Add new test tool run-decrypt.
+ commit 3364549c19682f56d4d9c52ab7f76862c5a456cf
* tests/run-decrypt.c: New.
* tests/Makefile.am (noinst_PROGRAMS): Add run-decrypt.
2016-06-23 Werner Koch <wk@gnupg.org>
core: Add closer inspection of "PGP MESSAGE".
+ commit cf37a57d28c43ec36277e84ca44458b7287b940b
* src/data-identify.c (inspect_pgp_message): New.
(basic_detection): Un-const arg DATA. Call inspect_pgp_message.
core: Add a base 64 decoder.
+ commit f8b8027ae63c957557ed6bdc7e5a30ef1bdd8e77
* src/b64dec.c: New. Taken from gnupg. Prefix function names with
_gpgme_ and change to use standard C malloc functions.
* src/util.h.h (struct b64state): New.
* src/Makefile.am (main_sources): Add file.
2016-06-22 Werner Koch <wk@gnupg.org>
core: Detect compressed signed OpenPGP data.
+ commit bb8cf6236582fc9eb6564046599989af52779a26
* src/data-identify.c (next_openpgp_packet): Allow partial encoding.
(pgp_binary_detection): Handle compressed packets.
2016-06-21 Werner Koch <wk@gnupg.org>
tests: Add new test tool run-identify.
+ commit 5905e8bbd809c1408edad4fa4eb0527fa51cbea3
* src/gpgme-tool.c (gt_identify): Add new strings.
* tests/run-identify.c: New.
* tests/Makefile.am (noinst_PROGRAMS): Add run-identify.
core: Enhance gpgme_data_identify to detect binary PGP messages.
+ commit 32d4bbf5e3e5f88e4a6852d72a35ee30df9d5279
* src/gpgme.h.in (GPGME_DATA_TYPE_PGP_ENCRYPTED): New.
(GPGME_DATA_TYPE_PGP_SIGNATURE): New.
* src/data-identify.c: Add enum for OpenPGP packet types.
(buf32_to_ulong): New.
(next_openpgp_packet): New. Based on the gnupg/kbx/keybox-openpgp.c
implementation and relicensed to LGPL by g10 Code.
(pgp_binary_detection): New.
(basic_detection): Call pgp_binary_detection instead of returning
unknown.
2016-06-16 Justus Winter <justus@g10code.com>
python: Improve autmatically generated docstrings.
+ commit 8997d88bf97d1784706becbf8e9dc74e4656e311
* lang/python/gpgme.i: Add comment.
* lang/python/pyme/core.py (__getattr__): Rewrite automatically
generated doctrings for the wrapper methods.
python: Make result objects more robust.
+ commit a324d0cffe93cab955698c2c065b2f2227e379e4
Results returned by the GPGME are fragile, i.e. they are only valid
until the next operation is performed in the context.
We cannot arbitrarily constrain the lifetime of Python objects, we
therefore create deep copies of the results.
* lang/python/gpgme.i (gpgme_tofu_info_t): Turn these into a list.
(gpgme_*_result_t): Create deep copies of these objects.
* lang/python/helpers.c (pygpgme_wrap_fragile_result): New function.
* lang/python/helpers.h (pygpgme_wrap_fragile_result): New prototype.
* lang/python/pyme/results.py: New file.
python: Avoid creating SWIG proxy classes.
+ commit 856bcfe2934237011984fab0bc69800a7c25c34b
* lang/python/Makefile.am (gpgme_wrap.c): Use '-builtin' to make SWIG
generate builtin types for c types.
* lang/python/gpgme.i (pygpgme_wrap_gpgme_data_t): Adapt slightly.
python: Simplify wrapping glue.
+ commit 6641c7814b30e3e8f18105b2636545cc1bd07552
* lang/python/pyme/core.py: Rename '_getctype' to '_ctype' and turn it
into a string. Likewise rename '_getnameprepend' to '_cprefix'.
* lang/python/helpers.c: Adapt accordingly.
python: Rework callbacks.
+ commit f3618bc615e3eff1f52fb5849cbf0f0b95515a61
Simplify how the lifetime of callback arguments is managed.
* lang/python/gpgme.i (gpgme_edit_cb_t): Check arguments.
(PyObject_p_p, void_p_p): Drop rather dangerous interface.
(pygpgme_unwrap_gpgme_ctx_t): New function.
* lang/python/helpers.c (pygpgme_clear_generic_cb): Drop dangerous
function.
(pyPassphraseCb): Assert contract.
(pygpgme_set_passphrase_cb): Use Python's calling convention so that
we can raise exceptions. Hand in 'self', get the wrapped object, and
simply store the hook data as attribute of the wrapper object.
(pyProgressCb, pygpgme_set_progress_cb): Likewise.
(pygpgme_set_status_cb): Likewise.
(pygpgme_data_new_from_cbs): Likewise.
* lang/python/helpers.h (pygpgme_clear_generic_cb): Drop prototype.
(pygpgme_set_passphrase_cb): Update prototype.
(pygpgme_set_progress_cb): Likewise.
(pygpgme_set_status_cb): Likewise.
(pygpgme_data_new_from_cbs): Likewise.
(pygpgme_unwrap_gpgme_ctx_t): New prottotype.
* lang/python/pyme/core.py (Context, Data): Update callsites.
python: Wrap objects implementing the buffer protocol.
+ commit 616929b6edf00b4a774b727385d39b785a112b90
* lang/python/Makefile.am: Add the toplevel source directory to CFLAGS
when compiling the bindings so that we can use private header files.
* lang/python/gpgme.i (gpgme_data_t): Rework the object wrapping. Do
not create a Python wrapper object, merely a gpgme_data_t object, and
keep references to buffer objects, if any. If necessary, update the
buffer after the function call.
(pygpgme_wrap_gpgme_data_t): New function.
* lang/python/helpers.c (object_to_gpgme_data_t): Rework object
wrapping. Also wrap objects implementing the buffer protocol.
* lang/python/helpers.h (object_to_gpgme_data_t): Update prototype.
(pygpgme_wrap_gpgme_data_t): New prototype.
* lang/python/tests/t-idiomatic.py: Demonstrate this.
python: Add properties to wrapped object.
+ commit 5464060baef2da8f5ea377118758e451c55e3787
* lang/python/pyme/core.py (GpgmeWrapper.__repr__): Saner
representation.
(GpgmeWrapper.__str__): Construct a nicer human readable string.
(GpgmeWrapper._boolean_properties): New field.
(GpgmeWrapper.__wrap_boolean_property): New function.
(GpgmeWrapper.__getattr__): Wrap functions using properties.
(GpgmeWrapper.__setattr__): New method. Likewise wrap functions.
(Context.signers): New property.
(Context.pinentry_mode): Likewise.
(Context._boolean_properties): List boolean properties.
(Context.__init__): Add keyword arguments for properties and apply
them.
python: Improve the documentation.
+ commit 5492853d7b84b4e1d0b11b234e32252ba8d1608d
* lang/python/Makefile.am: Copy the README file.
* lang/python/README: Rename, convert to org, and update.
* lang/python/pyme/__init__.py: Move license out of the docstring,
update docstring.
* lang/python/pyme/core.py: Add and update docstrings.
python: Get version information from the build system.
+ commit 7eef399d89d4c3877cb795ed5ba45ecb241e67be
* configure.ac: Generate 'setup.py' and 'version.py'.
* lang/python/Makefile.am: Use generated setup script.
* lang/python/pyme/version.py: Turn it into a template, and get
version information from the build system. Also drop some variables.
* lang/python/setup.py: Likewise. This way we can avoid importing the
version module, which is frowned upon and actually caused a problem.
python: Fix exception leak.
+ commit a852f99a0ac9dc7f7493b403f811f5f7518fae40
* lang/python/helpers.c (pygpgme_stash_callback_exception): Fix leak.
python: Fix license.
+ commit 3bacce03e60dc45cc2da99a2f5c504612202e802
Other parts of the build system are also LGPLed.
* lang/python/Makefile.am: Fix license.
2016-06-14 Werner Koch <wk@gnupg.org>
core: Make sure FD_SET is not used with an out of range fd.
+ commit 8173c4f1f8a145c4b1d454f6f05e26950e23d675
* src/posix-io.c (_gpgme_io_select): Check for FD out of range.
2016-06-08 Justus Winter <justus@g10code.com>
python: Improve error handling.
+ commit 77d149e8614c381458e07808a7930ce3fb92cdc3
* lang/python/helpers.c (pyPassphraseCb): Handle write errors.
(pyEditCb): Likewise.
python: Add function to raise exceptions from c.
+ commit 5ebc205439cac266685d2532466df8b3457dea23
* lang/python/helpers.c (pygpgme_raise_exception): New function.
python: Fix stripping deprecated functionality.
+ commit 8426304b67a0b0a5630db500abf740b0e0b9e43c
* lang/python/Makefile.am (gpgme.h): Add script as input.
* lang/python/gpgme-h-clean.py (deprec_func): Also match struct
members.
(line_break): Fix matching on struct members.
python: Fix type.
+ commit 990492ea4f7dafbb75de15ea91c30cbf090034b5
* lang/python/gpgme.i: Use correct Python type for size.
python: Implement the context manager protocol.
+ commit e3c5913a33edcbd7329b8d154c669f95ce782038
* lang/python/pyme/core.py (Context.__del__): Make function
idemptotent.
(Context.{__enter__,__exit__}): Implement the context manager
protocol.
(Data.__del__): Make function idemptotent, drop debug print.
(Data.{__enter__,__exit__}): Implement the context manager
protocol.
* lang/python/tests/t-idiomatic.py: Demonstrate this.
2016-06-07 Justus Winter <justus@g10code.com>
python: Fix error handling.
+ commit f8f9bf06bc3190968ba6613032d60a3bf2c8a6d9
* lang/python/gpgme.i: Fix freeing an uninitialized pointer in the
error handling of generated wrapper functions by explicitly storing
the pointer in a local variable which can be initialized.
2016-06-06 Justus Winter <justus@g10code.com>
python: Wrap file-like objects on demand.
+ commit 8196edf9ca5c8f2f02553e7f22d9c79dbd229882
* lang/python/gpgme.i (gpgme_data_t): Use new function to create
wrapper objects if necessary, and deallocate them after the function
call.
* lang/python/helpers.c (object_to_gpgme_data_t): New function.
* lang/python/helpers.h (object_to_gpgme_data_t): New prototype.
* lang/python/tests/Makefile.am (pytests): Add new test.
* lang/python/tests/t-idiomatic.py: New file.
python: Move helper function.
+ commit 26c3accc95ab77ddbe60db822e2938ad5f480d41
* lang/python/gpgme.i (object_to_gpgme_t): Move...
* lang/python/helpers.c: ... here.
* lang/python/helpers.h (object_to_gpgme_t): New prototype.
python: Fix error handling.
+ commit 89eb0cd4d65bc033ed6342810b26232797482d64
* lang/python/gpgme.i (object_to_gpgme_t): Properly propagate
exceptions.
python: Initialize GPGME for the user.
+ commit ae06f7c2fe0e49baeab5a827dc38ba8c57a6404c
* lang/python/pyme/core.py: Call 'check_version' and explain why.
* lang/python/tests/support.py (init_gpgme): Drop call here.
2016-06-01 Justus Winter <justus@g10code.com>
python: Fix test suite with GnuPG prior to 2.1.12.
+ commit bbf19124bbec9eb6298cef2914baae7ac74382fe
* lang/python/tests/Makefile.am (gpg-agent.conf): Use
'allow-loopback-pinentry'.
python: Make Python detection more robust.
+ commit 1607aa7fe5dd686ba3bfb6de4a2b602d6a458c86
Previously, missing Python development packages made configure fail
instead of merely disabling the bindings.
* configure.ac: Check for 'PYTHON_VERSION'.
* m4/ax_python_devel.m4: Make test non-fatal.
python: Improve build system integration, fix warnings.
+ commit 73c47535b631a55687ecc5eff1d1d9a9fd71021e
* lang/python/Makefile.am: Pass CFLAGS to python build system.
* lang/python/helpers.c (pyPassphraseCb): Use correct type for length.
(pygpgme_data_new_from_cbs): Drop unused variable.
2016-06-01 Andre Heinecke <aheinecke@intevation.de>
Cpp: Use whitelist for status messages.
+ commit 54314a9c7d7ad52981c836ca742644a1fa69b518
* lang/cpp/src/editinteractor.cpp (EditInteractor::needsNoResponse):
Use whitelist instead of blacklist.
Qt: Fix debug output in t-ownertrust.
+ commit 9d6f85bd25e51445f1776b498875e77b529311b1
* lang/qt/tests/t-ownertrust.cpp (testChangeOwnerTrust): Remove
general debug of trust level. Add debug output for error.
2016-06-01 Justus Winter <justus@gnupg.org>
tests: Fix notation tests.
+ commit c88c9ef384b6f7bda9a61b58f26c2f89ae25f684
* lang/python/tests/t-sig-notation.py (check_result): Check critical
flag.
* tests/gpg/t-sig-notation.c (check_result): Likewise.
2016-06-01 Werner Koch <wk@gnupg.org>
core: Set notation flags for verify.
+ commit 1cacd7d00a7b3de4a5e11ccce5ee6c50e0a5516d
* src/gpgme.h.in (GPGME_STATUS_NOTATION_FLAGS): New.
* src/status-table.c (status_table): Add new status.
* src/verify.c (parse_notation): Handle flags. Also fix NOTATION_DATA
in case gpg would not percent-escape spaces.
(_gpgme_verify_status_handler): Handle flags.
* tests/run-verify.c (print_result): Print notaion data.
2016-05-31 Tobias Mueller <muelli@cryptobitch.de>
python: use GPG_ERROR_CONFIG variable.
+ commit 8ad17f402f6420880dcf06a13a54feadb52c0208
instead of calling gpg-error-config.
This is useful when configuring with --with-gpgerror-prefix
because then GPG_ERROR_CONFIG contains the correct
/path/to/bin/gpg-error-config whereas calling gpg-error-config
directly would look in the user's PATH (and not in the prefix
where gpg-error-config was installed).
2016-05-31 Justus Winter <justus@gnupg.org>
python: Port more tests.
+ commit afa0dd56e1cce64fe08bff3c64b12aecce54fd2d
* lang/python/gpgme.i: Hide length fields of notations.
* lang/python/tests/Makefile.am (pytests): Add new tests.
* lang/python/tests/t-decrypt-verify.py: New file.
* lang/python/tests/t-sig-notation.py: Likewise.
* lang/python/tests/t-verify.py: Likewise.
2016-05-27 Werner Koch <wk@gnupg.org>
Speedup closing of fds before exec.
+ commit 89d22f9229f2ecd559ac6ea91dae60eeff940fa5
* src/posix-io.c [__linux__]: Include dirent.h.
(get_max_fds) [__linux__]: Try to figure out the highest used fd.
2016-05-27 Justus Winter <justus@gnupg.org>
python: Port more tests.
+ commit 3915842657f0849a038752fd7445f96081a89dd9
* lang/python/pyme/core.py (Data._error_check): Add
'gpgme_data_get_file_name' to the list of functions not returning an
error code.
* lang/python/tests/Makefile.am (pytests): Add new tests.
* lang/python/tests/support.py (verbose): New variable.
* lang/python/tests/t-data.py: Test setting and getting the filename.
* lang/python/tests/t-encrypt-large.py: New file.
* lang/python/tests/t-file-name.py: Likewise.
* lang/python/tests/t-trustlist.py: Likewise.
python: Implement data callbacks.
+ commit 2ae847c02731994d99e69d3d025ff01f41406452
* lang/python/gpgme.i (object_to_gpgme_t): Set exception on error.
* lang/python/helpers.c (pyDataReadCb): New function.
(pyDataWriteCb): Likewise.
(pyDataSeekCb): Likewise.
(pyDataReleaseCb): Likewise.
(pygpgme_data_new_from_cbs): Likewise.
* lang/python/helpers.h (pygpgme_data_new_from_cbs): New prototype.
* lang/python/pyme/core.py (Data.__init__): Fix docstring, fix read
callbacks.
(Data.__del__): Fix read callbacks.
(Data._free_readcb): Drop function.
(Data._free_datacbs): New function.
(Data.new_from_cbs): Fix setting the callbacks.
(Data.write): Raise stashed exceptions.
(Data.read): Likewise.
* lang/python/tests/t-callbacks.py: Test new functionality.
* lang/python/tests/t-data.py: Likewise.
python: Fix object deallocation.
+ commit ebfe2300c33a3bad311e9ac1530e6c92636a08a4
Handing a reference to the wrapper object created a non-trivial
circular reference that Pythons garbage collector is unable to break.
Explicitly break it by using a weak reference.
* lang/python/helpers.c (pygpgme_stash_callback_exception): Retrieve
object from weak reference.
* lang/python/pyme/core.py (Context.__del__): Free status callback.
(Context.set_passphrase_cb): Use a weak reference.
(Context.set_progress_cb): Likewise.
(Context.set_status_cb): Likewise.
(Context.op_edit): Likewise.
Improve comments.
+ commit e74cd9fb80f12b764d5e4561e73d55644147e9e7
* src/gpgme.h.in (gpgme_data_seek_cb_t, gpgme_data_seek): Clarify that
these functions return the new offset.
(gpgme_data_release_cb_t): Fix name of parameter.
python: Fix reading data from existing files.
+ commit bf188e280b8b4fc775f33c47e2e1e275ed044004
* lang/python/pyme/core.py (Data.__init__): Add 'copy' kwargument, and
pass it to functions supporting it. PEP8 fix.
(Data.new_from_fd): PEP8 fix.
(Data.new_from_file): Give a more helpful error message if copy is
False. PEP8 fix.
(Data.new_from_fd): Hand the file descriptor to
'gpgme_data_new_from_fd', not a stream. Fix docstring.
* lang/python/tests/t-data.py: Add tests for this.
2016-05-25 Justus Winter <justus@gnupg.org>
src: Fix trace string.
+ commit ce73ae9d0cbf782cd3a1949fc4f568f0d1da60d9
* src/data-compat.c (gpgme_data_new_from_file): Fix trace string.
2016-05-24 Justus Winter <justus@gnupg.org>
python: Improve and test Context.wait.
+ commit 00ff6d07330028da370c869e3ec442eb76f8cbb8
* lang/python/pyme/core.py (Context.wait): Improve docstring. As the
context passed to 'gpgme_wait' is never NULL, it is pointless to look
at the returned context. Always raise exceptions.
* lang/python/tests/Makefile.am (pytests): Add new test.
* lang/python/tests/t-wait.py: New file.
python: Make all GnuPG errors available.
+ commit 7bc9cc717e428f48d4b27016f44c9f3900b1fba6
* lang/python/Makefile.am (errors.i): Generate file.
* lang/python/gpgme.i: Include generated file.
* lang/python/pyme/errors.py: Pull in all errors and error sources.
python: Move the base wrapper class.
+ commit 0ebd6a1b43a96bffa78da89dc8629edac0a74d35
* python/lang/pyme/util.py (GpgmeWrapper): Move...
* python/lang/pyme/core.py: ... here.
python: Support status callbacks.
+ commit 8b57f06e0c04f5c9b87a3c76618230d757412076
* lang/python/helpers.c (pyStatusCb): New function.
(pygpgme_set_status_cb): Likewise.
* lang/python/helpers.h (pygpgme_set_status_cb): New prototype.
* lang/python/pyme/core.py (Context.__init__): Initialize
'last_statuscb'.
(Context._free_statuscb): New function.
(Context.set_status_cb): Likewise.
* lang/python/tests/t-callbacks.py: Test status callbacks.
python: Improve docstring.
+ commit 72afb68f8c2f0cb326f20b289215402fd849339d
* lang/python/pyme/core.py (Context.set_progress_cb): Improve
docstring.
2016-05-24 Andre Heinecke <aheinecke@intevation.de>
Qt: Fix test build with clang.
+ commit 00e93b2cae0585ff10425421d9097a846943b21c
* lang/qt/tests/Makefile.am (LDADD): Explicitly add -lstdc++
Cpp: Set -std=c++11 also if CXXCPP is already set.
+ commit b107fc8a92bd16bc0d868c771b6334d6594e6395
* m4/ax_cxx_compile_stdxx.m4 (AX_CXX_COMPILE_STDCXX): Set CXXCPP if
neccessary.
2016-05-24 Justus Winter <justus@gnupg.org>
python: Improve support for edit callbacks.
+ commit 09803c4a81b9431fd4c8f30abb1c60c4c735f0cb
* lang/python/helpers.c (pyEditCb): Stash exceptions.
* lang/python/pyme/core.py (Context.op_edit): Hand in 'self'.
* lang/python/tests/Makefile.am (py_tests): Add new test.
* lang/python/tests/t-callbacks.py: Test edit callbacks.
* lang/python/tests/t-edit.py: New file.
2016-05-23 Justus Winter <justus@gnupg.org>
python: Fix hook.
+ commit 283f0bdc3d32624dac93d02ba3df516e69d8d4ba
* lang/python/helpers.c (pyProgressCb): Fix getting hook data.
* lang/python/tests/t-callbacks.py: Show that this works.
python: Move edit callback function.
+ commit 5476ca6813fc9d8833d5224f19d4bb7515380ab5
* lang/python/gpgme.i (pyEditCb): Move...
* lang/python/helpers.c: ... here.
* lang/python/helpers.h (pyEditCb): New prototype.
python: Port more tests.
+ commit a42d814a65fdc29a3be6efa97433997495696a88
* lang/python/tests/Makefile.am (TESTS_ENVIRONMENT): Set
LD_LIBRARY_PATH.
(pytests): Add new tests.
* lang/python/tests/t-callbacks.py: Trim imports.
* lang/python/tests/t-encrypt-sign.py: New file.
* lang/python/tests/t-export.py: Likewise.
* lang/python/tests/t-signers.py: Likewise.
python: Translate list of strings.
+ commit c9cc0412e940c78c3e9bacb6ff1459b5bb5bb9ad
* lang/python/gpgme.i: Add typemap translating list of strings.
2016-05-21 Werner Koch <wk@gnupg.org>
api: Return Tofu info for signatures.
+ commit 10df06ee8f9192309bf124872438f7c32457e1c6
* src/gpgme.h.in (gpgme_tofu_policy_t): New.
(gpgme_status_code_t): Add status codes for TOFU.
(struct _gpgme_tofu_info, gpgme_tofu_info_t): New.
(struct _gpgme_signature): Add field 'tofu'.
* src/status-table.c (status_table): Add new codes.
* src/verify.c: Include limits.h.
(release_tofu_info): New.
(release_op_data): Call that.
(parse_tofu_user): New.
(parse_tofu_stats): New.
(parse_tofu_stats_long): New.
(_gpgme_verify_status_handler): Handle TOFU status lines.
* tests/run-verify.c (print_description): New.
(print_result): print tofu info.
api: Add new context flag "raw-description".
+ commit dac2c5441d418536632f014c8b0e1359580279d1
* src/context.h (struct gpgme_context): Add field raw_description.
* src/gpgme.c (gpgme_set_ctx_flag): New flag.
core: New functions to help parsing of status lines.
+ commit a92946a8cacc44f655249d84b316deae59e62671
* src/conversion.c (_gpgme_split_fields): New.
(_gpgme_strtoul_field): New.
2016-05-20 Andre Heinecke <aheinecke@intevation.de>
Qt: Add test for changeownertrust.
+ commit eaf2d018e63c15cd9a81e5c1fd2fedbf8829f7b9
* lang/qt/tests/t-ownertrust.cpp: New test.
* lang/qt/tests/Makefile.am: Add test.
Cpp: Ignore STATUS_KEY_CONSIDERED when editing.
+ commit 5df858cbf196b2a53d600b7f45655f7b35c1fe93
* lang/cpp/src/editinteractor.cpp (EditInteractor::needsNoResponse):
Handle GPGME_STATUS_KEY_CONSIDERED.
2016-05-19 Werner Koch <wk@gnupg.org>
api: Add new function gpgme_set_ctx_flag.
+ commit 88f2c1c0d16eee6bb36a901623ea65ac69499f03
* src/gpgme.h.in (gpgme_set_ctx_flag): New prototype.
* src/gpgme.c (gpgme_set_ctx_flag): New.
* src/gpgme.def, src/libgpgme.vers: Add new function.
* src/context.h (struct gpgme_context): Add FULL_STATUS.
* src/decrypt.c (_gpgme_decrypt_status_handler): Do not call the
status callback if FULL_STATUS is set.
* src/genkey.c (genkey_status_handler): Ditto.
* src/passphrase.c (_gpgme_passphrase_status_handler): Ditto.
* src/sign.c (_gpgme_sign_status_handler): Ditto.
* src/engine-backend.h (struct engine_ops): Add SET_STATUS_CB and add
adjust all definitions of that variable.
* src/engine.c (_gpgme_engine_set_status_cb): New.
* src/op-support.c (_gpgme_op_reset): Call this function.
* src/engine-gpg.c (struct engine_gpg): Add fields MON_CB and
MON_CB_VALUE.
(gpg_set_status_cb): New.
(_gpgme_engine_ops_gpg): Register that function.
(read_status): Call the monitor callback.
* src/engine-gpgsm.c (struct engine_gpgsm): Add fields MON_CB and
MON_CB_VALUE.
(_gpgme_engine_ops_gpgsm): Register that function.
(gpgsm_assuan_simple_command): Change first arg to be an engine
context and adjust call callers. Call the monitor callback.
* src/engine-uiserver.c (struct engine_uiserver): Add fields MON_CB
and MON_CB_VALUE.
(_gpgme_engine_ops_uiserver): Register that function.
(uiserver_assuan_simple_command): Change first arg to be an engine
context and adjust call callers. Call the monitor callback.
* tests/run-verify.c (status_cb): New.
(print_result): Print algo names.
(main): Add option --status.
api: Remove arbitrary restriction from gpgme_op_verify.
+ commit 5aa8e588e166abeef2e3d677ab6830f2d7af1b5d
* src/verify.c (verify_start): Do not return GPG_ERR_INV_VALUES when
when SIGNED_TEXT is not given.
2016-05-19 Justus Winter <justus@gnupg.org>
python: Improve progress callbacks.
+ commit 0d4e95621e05d50cd454049a424bb9ee098a5db6
* lang/python/helpers.c (pyProgressCb): Stash python errors, convert
'what' to Unicode object.
* lang/python/pyme/core.py (Context.set_progress_cb): Hand in 'self'.
* lang/python/tests/t-callbacks.py: Test progress callbacks.
python: Robust exception handling in callbacks.
+ commit d90857a08c4fe5b73b6d6d46fd6200efdd72db44
* lang/python/helpers.c (pygpgme_stash_callback_exception): New
function.
(pygpgme_raise_callback_exception): Likewise.
(pyPassphraseCb): Stash python errors.
* lang/python/helpers.h (pygpgme_raise_callback_exception): New
prototype.
* lang/python/pyme/core.py ({Context,Data}.__init__): Move common
initialization to superclass.
(Context.set_progress_cb): Hand in 'self'.
* lang/python/pyme/util.py (GpgmeWrapper.__init__): New function.
(GpgmeWrapper.__getattr__): Raise stashed exceptions.
* lang/python/tests/Makefile.am (py_tests): Add new test.
* lang/python/tests/t-callbacks.py: New file.
2016-05-19 Andre Heinecke <aheinecke@intevation.de>
Qt: Check for graphviz and set HAVE_DOT correctly.
+ commit 2f748b5a2d162be4f23b18782219771ead54cb51
* configure.ac: Check for graphviz and define HAVE_DOT.
* lang/qt/doc/Doxyfile.in (HAVE_DOT): Use variable.
2016-05-19 Justus Winter <justus@gnupg.org>
python: Add more tests.
+ commit 464d404c8816fc93baf945816c93e86bdeb0ea39
* lang/python/tests/Makefile.am (py_tests): Add new tests.
* lang/python/tests/support.py (print_data): New function.
* lang/python/tests/t-decrypt.py: Use new function.
* lang/python/tests/t-encrypt.py: Likewise.
* lang/python/tests/t-sign.py: New file.
* lang/python/tests/t-encrypt-sym.py: Likewise.
python: More type conversion fixes.
+ commit c1c893e3384a07ff864507902fbac4a7fee4d6f1
* lang/python/helpers.c (pyPassphraseCb): Cope with 'uid_hint' being
NULL, convert it to an Unicode object, and cope with the callback
returning both Unicode and bytes objects.
python: Fix import.
+ commit 07f71cd17706093ca6b1507c41609356d479ae9f
* lang/python/helpers.c (pygpgme_exception_init): Make module import
relative.
2016-05-19 Andre Heinecke <aheinecke@intevation.de>
Qt: Fix compilation of unit tests.
+ commit 375523ead3a749d77d286c56f10d403c07f2b014
* lang/qt/tests/Makefile.am (AM_CPPFLAGS): Add -DBUILDING_QGPGME.
2016-05-18 Justus Winter <justus@gnupg.org>
python: Various fixes.
+ commit 2c3a5d93e78cfca22785e51c5a65184a47da4bff
* configure.ac: Fix SWIG detection, bump required Python version.
* lang/python/Makefile.am: Portability fix.
2016-05-18 Andre Heinecke <aheinecke@intevation.de>
Fix typo in compatibility declaration.
+ commit f0dca0ab92ed18d80e30d7d39db1596b4112794f
* src/op-support.c (GPG_ERR_SUBKEYS_EXP_REV): Change to
GPG_ERR_SUBKEYS_EXP_OR_REV.
2016-05-17 Werner Koch <wk@gnupg.org>
tests: New maintenance helper run-encrypt.
+ commit 30b447fcfe0e4f362c2575e1b9388e8144b5b2fd
* tests/run-encrypt.c: New.
Return dedicated error code for all subkeys expired or revoked.
+ commit 315fb73d4a774e2c699ac1804f5377559b4d0027
* src/gpgme.h.in (GPGME_STATUS_KEY_CONSIDERED): New.
(GPGME_SIGSUM_TOFU_CONFLICT): New.
* src/status-table.c (KEY_CONSIDERED): New.
* src/op-support.c (_gpgme_parse_inv_recp): Add argc KC_FPR and
KC_FLAGS. Use calloc. Detect all expired or revoked subkeys.
(_gpgme_parse_key_considered): New.
* src/sign.c (op_data_t): Add fields KC_FPR and KC_FLAGS.
(release_op_data): Free KC_FPR.
(_gpgme_sign_status_handler): Handle STATUS_KEY_CONSIDERED.
* src/encrypt.c (op_data_t): Add fields KC_FPR and KC_FLAGS.
(release_op_data): Free KC_FPR.
(_gpgme_encrypt_status_handler): Handle STATUS_KEY_CONSIDERED.
2016-05-17 Andre Heinecke <aheinecke@intevation.de>
Qt / Cpp: Port auto_ptr to unique_ptr.
+ commit 9b36ebf37a3b889c955ba68038bd5b3d9c5cde4e
* lang/cpp/src/context.cpp,
lang/cpp/src/context.h,
lang/cpp/src/context_p.h (Context::createForEngine),
(Context::edit, Context::startEditing),
(Context::takeLastEditInteractor, Context::cardEdit),
(Context::startCardEditing, Context::takeLastCardEditInteractor),
(Context::assuanTransact, Context::startAssuanTransaction),
(Context::takeLastAssuanTransaction): Port to unique_ptr.
* lang/qt/src/qgpgmeadduseridjob.cpp,
lang/qt/src/qgpgmechangeexpiryjob.cpp,
lang/qt/src/qgpgmechangeownertrustjob.cpp,
lang/qt/src/qgpgmechangepasswdjob.cpp,
lang/qt/src/qgpgmesignkeyjob.cpp: Update accordingly.
2016-05-17 Justus Winter <justus@gnupg.org>
build: Add python autoconf macro.
+ commit 4711a1e181153a2395e5f523047595abd47965db
* m4/ax_python_devel.m4: New file.
python: Clean up examples.
+ commit 10328324c8fc9725cd0c885eaebfc80dc32c1ff6
* lang/python/examples/delkey.py: Clean up example.
* lang/python/examples/encrypt-to-all.py: Likewise.
* lang/python/examples/genkey.py: Likewise.
* lang/python/examples/inter-edit.py: Likewise.
* lang/python/examples/sign.py: Likewise.
* lang/python/examples/signverify.py: Likewise.
* lang/python/examples/simple.py: Likewise.
* lang/python/examples/t-edit.py: Likewise.
* lang/python/examples/verifydetails.py: Likewise.
* lang/python/pyme/__init__.py: Likewise.
python: Import GPGMEError.
+ commit 64e5fe767f45e9ccb0fb3fe919171c222132a54c
* pyme/core.py: Import GPGMEError.
Fixes c5d118b2.
python: Port more tests.
+ commit 9ceaec25918c6c5f2dfafe4e20181b83ce78f6ce
* lang/python/Makefile.am: Add bits from the c test suite.
* lang/python/support.py: New file.
* lang/python/t-decrypt.py: Likewise.
* lang/python/t-encrypt.py: Likewise.
2016-05-13 Andre Heinecke <aheinecke@intevation.de>
Qt: Add keyLocateJob and test for it.
+ commit 52f2295d528029a36a3e0a89c777297762b3fc9b
* configure.ac (LIBQGPGME_LT_REVISION): Bump.
* lang/qt/src/protocol.h (locateKeysJob): Add Job.
* lang/qt/src/protocol_p.h (locateKeysJob): Implement.
* lang/qt/tests/Makefile.am: Add t-keylocate.
* lang/qt/tests/t-keylocate.cpp: New.
Qt: Add missing copyright header in test.
+ commit 66ded1a5ce7236254f8541addecd4c3bc7b2878e
* lang/qt/tests/t-keylist.cpp: Add copyright header.
2016-05-12 Justus Winter <justus@gnupg.org>
python: Share generated methods between objects.
+ commit 11314f0db6e57597e3f56351a86fdb36a7a17dd7
* lang/python/pyme/util.py (GpgmeWrapper.__getattr__): Monkey-patch
the class.
* lang/python/tests/t-wrapper.py: Demonstrate the sharing.
python: Raise exceptions on write errors.
+ commit c5d118b2a76e9528df780d11da9566ff7c22e4f5
* lang/python/pyme/core.py (Data.write): Handle errors.
* lang/python/pyme/errors.py (GPGMEError.fromSyserror): New function.
python: Fix writing to data buffers.
+ commit f7094d8358e933f3ce074eade7a40b2a7d291180
* lang/python/gpgme.i: Add typemap for buffers.
* lang/python/pyme/core.py (Data.write): Fix function.
* lang/python/tests/Makefile.am: Add new test.
* lang/python/tests/t-data.py: New file.
python: Add a test suite.
+ commit e64bffe0307d14204b00a177a472cd4f99c07561
* configure.ac: Add new Makefile.
* lang/python/Makefile.am: Add subdirectory.
* lang/python/tests/Makefile.am: New file.
* lang/python/tests/t-wrapper.py: Likewise.
python: Cache generated wrapper functions.
+ commit ed0ce84fbd2904bf59ac66ae7422716db3624efa
* lang/python/util.py (GpgmeWrap.__getattr__): Cache generated wrapper
functions.
python: Fix function invocation.
+ commit e3d3d366bd1a1aea8a38ae5dcbf71ea3c784e920
* lang/python/pyme/core.py (Data.new_from_fd): Fix function
invocation.
python: Fix name of exception, make slot methods explicit.
+ commit af9371eb63664c92fb67e8e7e03cc984e7d38a7f
* lang/python/pyme/util.py (GpgmeWrapper._getctype): Fix exception,
add docstring.
(GpgmeWrapper._getnameprepend): New function.
(GpgmeWrapper._errorcheck): Likewise.
python: Handle interpreter shutdown.
+ commit ce5121ad53b0e17fbf9150b354c80da73f7fe190
* lang/python/pyme/core.py: Avoid races at interpreter shutdown. This
silences the most annoying occurrences, however this problem also
affects the SWIG generated code, which might indicate that the real
problem is somewhere else. If so, this change can be easily reverted.
python: Make test case more robust.
+ commit c89d3a71ad20ff02755539a44f254b1e59054c4a
* lang/python/examples/t-edit.py: Check if key is found.
python: Fix type translation.
+ commit d60deb8a127fb35c01acc729f33b014840af0e7b
* lang/python/gpgme.i: Adjust to Python3's string type being
'Unicode', not 'bytes'. Fix type checking.
* lang/python/core.py (Data.write): Add docstring mentioning the
expected type of parameter 'buffer'.
(Data.read): Adjust read loop. Also, use a saner chunk size, and join
all chunks at the end instead of adding them.
* lang/python/examples/simple.py: Adjust example.
2016-05-11 Andre Heinecke <aheinecke@intevation.de>
Cpp: Ensure gpgme.h is taken from current build.
+ commit b8de79160b2e05ac84d8feb61ff7ed1f7015a623
* lang/cpp/src/Makefile.am (AM_CPPFLAGS): Add gpgme.h location.
2016-05-11 Justus Winter <justus@gnupg.org>
python: Fix simple example.
+ commit bbeee5e1a060f2d1e37a08220eb552cf4673a058
* lang/python/examples/simple.py: Flush stdout, encode name as
UTF-8 before passing it to GPGME.
python: Integrate into the build system.
+ commit a29babd07cf9f9625d2b5aa2eb6b7bc9d1828359
* configure.ac: Make Python bindings configurable, add new Makefile.
* lang/python/Makefile.am: New file.
* lang/python/setup.py: Integrate into the build system.
* m4/ax_pkg_swig.m4: New file from the autoconf archive.
* m4/m4_ax_swig_python.m4: Likewise.
2016-05-10 Andre Heinecke <aheinecke@intevation.de>
Qt / Cpp: Fix make dist.
+ commit c303292aca26c43b6efe98719edb3ff7b2d6665d
* lang/cpp/src/Makefile.am (EXTRA_DIST): Fix typo.
(private_gpgmepp_headers): New. Private headers.
(libgpgmepp_la_SOURCES): Add private headers.
* lang/qt/src/Makefile.am (t_keylist_SOURCES): Remove non existent
header.
2016-05-10 Justus Winter <justus@gnupg.org>
python: PEP8 fixes.
+ commit 11392a80d9a85bcd8718b105e6d58038e61beaac
Cherry picked from 0267c151.
2016-05-10 Andre Heinecke <aheinecke@intevation.de>
Qt: Make Protocol class public API.
+ commit 56c4d9ea9520c95612e525b2fa1359db6fa88f4a
* lang/qt/src/Makefile.am (qgpgme_headers): Add protocol.h
(private_qgpgme_headers): Add protocol_p.h
* lang/qt/src/protocol.h: New. From QGpgMEBackend.
* lang/qt/src/protocol_p.h: New. From QGpgMEBackend.
* lang/qt/src/qgpgmebackend.h,
lang/qt/src/qgpgmebackend.cpp (Protocol): Removed.
Qt: Make doxygen quieter.
+ commit 97225bb01cd2ffa1d84c7fedbc577275de4a4893
* lang/qt/doc/Doxyfile.in: Quiet and no undocumented warnings.
Qt: Only install public headers.
+ commit 740f92a7b83389ee9bde98b7bd25556793500b8b
* lang/qt/src/Makefile.am: Do not install all headers.
Qt: Add test for async keylisting.
+ commit 0e3195948ddaba3af07d2415bb496491076edc17
* src/lang/qt/tests/t-keylist.cpp(KeyListTest::testKeyListAsync): New.
2016-05-10 Werner Koch <wk@gnupg.org>
Allow cc to detect missing cases in a switch.
+ commit fc38c15136c87ce971a8381fa87399088dd5a3cc
* src/delete.c (delete_status_handler): Remove default case from a
switch so that cc can check the use of all enum values.
2016-05-06 Andre Heinecke <aheinecke@intevation.de>
Use common error message style for qt lang checks.
+ commit a579be82c84f0b9732ee3d52ff2142a3decf95d7
* configure.ac: Use common error highliting for qt lang options.
Qt: Fix license mentioned in README.
+ commit 11ff8d5964bf66f905818514f6a51fc881ea1a56
* lang/qt/README: License is GPLv2+ and not LGPL.
Add maybe mode for langs and default to it.
+ commit cd267791e9bd73505a2a1ea90c85df988e153c19
* configure.ac (languages): Warn and disable langs for which
requirements are not met.
Cpp: Handle PINENTRY_LAUNCHED status line.
+ commit 3fad1216770f446a89801d842aa8667356a5ec95
* lang/cpp/src/editinteractor.cpp (EditInteractor::needsNoResponse):
Add GPGME_STATUS_PINENTRY_LAUNCHED.
2016-04-12 Andre Heinecke <aheinecke@intevation.de>
Cpp: Add support for pubkey_algo_name.
+ commit 5489532ad6ccf3a9b59405686b8a17352f1ecf06
* lang/cpp/src/key.cpp (Subkey::algoName): New.
* lang/cpp/src/key.h: Declare.
Cpp: Add support for gpgme_data_identify.
+ commit d949d711dc1d944a9d627d39a89af74943a5a8c1
* lang/cpp/src/data.cpp (Data::type): New.
* lang/cpp/src/data.h (Data::Type): New enum mapping.
Fix configuration without Qt language.
+ commit 6dba47c3a2c32d7c1e1d91a96030f99f606433ea
* configure.ac: Define HAVE_DOXYGEN also if qt should not be built.
2016-04-11 Andre Heinecke <aheinecke@intevation.de>
Qt/Cpp: Bump so version to 6.
+ commit 8e7074dbb8093cc342e330bcd6b172b4f769a0c6
* configure.ac (LIBGPGMEPP_LT_CURRENT, LIBQGPGME_LT_CURRENT): Bump.
Qt / Cpp: Mention coding style in READMES.
+ commit d2b55101195efe9702e855a48fc6e21839fb98cc
* src/lang/cpp/README, src/lang/qt/README: Add hacking note.
Qt: Add doc generation with doxygen.
+ commit a1e95f36ce1895cd9894f6d3ca76640c42c2f9fc
* configure.ac: Look for doxygen if qt is built.
Configure new files.
* lang/qt/doc/Doxyfile.in: New.
* lang/qt/doc/Makefile.am: New.
* lang/qt/README: Update.
Qt: Fix unit test by adding initial.test dep.
+ commit d9f7a18ed88127e7f05d770d55118d1e928f3b3f
* lang/qt/tests/t-keylist.cpp: Verify that GNUPGHOME is set.
* lang/qt/tests/initial.test: New dummy test.
* lang/qt/tests/Makefile.am: Add dependency to initial.test
Qt: Remove remaining boost usage.
+ commit afd8fad6e275e2f74b2ad045dce05d826986e2ec
* lang/qt/src/dataprovider.h,
lang/qt/src/decryptjob.h,
lang/qt/src/decryptverifyjob.h,
lang/qt/src/encryptjob.h,
lang/qt/src/qgpgmeadduseridjob.cpp,
lang/qt/src/qgpgmechangeexpiryjob.cpp,
lang/qt/src/qgpgmechangeownertrustjob.cpp,
lang/qt/src/qgpgmechangepasswdjob.cpp,
lang/qt/src/qgpgmedecryptjob.cpp,
lang/qt/src/qgpgmedecryptverifyjob.cpp,
lang/qt/src/qgpgmedeletejob.cpp,
lang/qt/src/qgpgmedownloadjob.cpp,
lang/qt/src/qgpgmeencryptjob.cpp,
lang/qt/src/qgpgmeexportjob.cpp,
lang/qt/src/qgpgmeimportfromkeyserverjob.cpp,
lang/qt/src/qgpgmeimportjob.cpp,
lang/qt/src/qgpgmekeygenerationjob.cpp,
lang/qt/src/qgpgmekeylistjob.cpp,
lang/qt/src/qgpgmenewcryptoconfig.cpp,
lang/qt/src/qgpgmenewcryptoconfig.h,
lang/qt/src/qgpgmesignencryptjob.cpp,
lang/qt/src/qgpgmesignjob.cpp,
lang/qt/src/qgpgmesignkeyjob.cpp,
lang/qt/src/qgpgmeverifydetachedjob.cpp,
lang/qt/src/qgpgmeverifyopaquejob.cpp,
lang/qt/src/signencryptjob.h,
lang/qt/src/signjob.h,
lang/qt/src/threadedjobmixin.cpp,
lang/qt/src/threadedjobmixin.h,
lang/qt/src/verifydetachedjob.h,
lang/qt/src/verifyopaquejob.h: Remove boost usage.
Qt: Remove predicates.h and stl_util.h.
+ commit e18256fc5f613da9406da60c3ef2f84f2be04ef0
* src/lang/qt/predicates.h, src/lang/qt/stl_util.h: Removed.
Qt: Remove usage of stl_util.h and predicates.h.
+ commit d293bd32293929eeb3f6ec35f916a4678fb51729
* src/lang/qt/qgpgmelistallkeysjob.cpp: Use comperators from
gpgmepp instead of detail. Remove boost usage.
Cpp: Add string comparators for keys.
+ commit 1bb162a54ba480413c4da07f2578efe6860494c0
* lang/cpp/src/global.h (GPGMEPP_MAKE_STRCMP): New.
(_gpgmepp_strcmp): NULL save wrapper around std::strcmp.
* lang/cpp/src/key.h: Add comparators for various attributes.
Cpp: Remove last usages of boost.
+ commit 691950e18cf08a3f9bbc2004501834cd47bea579
* lang/cpp/src/configuration.cpp: Use std::remove_pointer.
(Configuration::operator<<): std::for_each.
* lang/cpp/src/context.cpp: Delete manually instead of scoped ptr.
* lang/cpp/src/scdgetinfoassuantransaction.cpp: Use static_assert.
(to_reader_list): Tokenize with getline.
2016-04-04 Andre Heinecke <aheinecke@intevation.de>
Add pthread in gpgmepp config.
+ commit cc68ff5f7210ac879fbdf719fcd5944f9ae5602b
* lang/cpp/src/GpgmeppConfig.cmake.in.in: Add pthread.
2016-04-03 Andre Heinecke <aheinecke@intevation.de>
Cpp / Qt: Reduce boost usage (memory and tuple)
+ commit f98898ab1a6952e0c3a5d235963a27eba2e19e46
* cpp/src/assuanresult.h,
cpp/src/configuration.cpp,
cpp/src/configuration.h,
cpp/src/data.h,
cpp/src/decryptionresult.h,
cpp/src/defaultassuantransaction.cpp,
cpp/src/encryptionresult.cpp,
cpp/src/encryptionresult.h,
cpp/src/engineinfo.h,
cpp/src/gpgagentgetinfoassuantransaction.cpp,
cpp/src/gpgsignkeyeditinteractor.cpp,
cpp/src/importresult.cpp,
cpp/src/importresult.h,
cpp/src/key.h,
cpp/src/keygenerationresult.h,
cpp/src/keylistresult.h,
cpp/src/notation.h,
cpp/src/signingresult.cpp,
cpp/src/signingresult.h,
cpp/src/verificationresult.cpp,
cpp/src/verificationresult.h,
cpp/src/vfsmountresult.h,
qt/src/dataprovider.cpp,
qt/src/dataprovider.h,
qt/src/decryptjob.h,
qt/src/decryptverifyjob.h,
qt/src/downloadjob.h,
qt/src/encryptjob.h,
qt/src/qgpgmeadduseridjob.cpp,
qt/src/qgpgmechangeexpiryjob.cpp,
qt/src/qgpgmechangeownertrustjob.cpp,
qt/src/qgpgmechangepasswdjob.cpp,
qt/src/qgpgmedecryptjob.cpp,
qt/src/qgpgmedecryptjob.h,
qt/src/qgpgmedecryptverifyjob.cpp,
qt/src/qgpgmedecryptverifyjob.h,
qt/src/qgpgmedeletejob.cpp,
qt/src/qgpgmedownloadjob.cpp,
qt/src/qgpgmedownloadjob.h,
qt/src/qgpgmeencryptjob.cpp,
qt/src/qgpgmeencryptjob.h,
qt/src/qgpgmeexportjob.cpp,
qt/src/qgpgmeexportjob.h,
qt/src/qgpgmeimportfromkeyserverjob.cpp,
qt/src/qgpgmeimportfromkeyserverjob.h,
qt/src/qgpgmeimportjob.cpp,
qt/src/qgpgmeimportjob.h,
qt/src/qgpgmekeygenerationjob.cpp,
qt/src/qgpgmekeygenerationjob.h,
qt/src/qgpgmekeylistjob.cpp,
qt/src/qgpgmekeylistjob.h,
qt/src/qgpgmelistallkeysjob.cpp,
qt/src/qgpgmelistallkeysjob.h,
qt/src/qgpgmenewcryptoconfig.cpp,
qt/src/qgpgmenewcryptoconfig.h,
qt/src/qgpgmesignencryptjob.cpp,
qt/src/qgpgmesignencryptjob.h,
qt/src/qgpgmesignjob.cpp,
qt/src/qgpgmesignjob.h,
qt/src/qgpgmesignkeyjob.cpp,
qt/src/qgpgmeverifydetachedjob.cpp,
qt/src/qgpgmeverifydetachedjob.h,
qt/src/qgpgmeverifyopaquejob.cpp,
qt/src/qgpgmeverifyopaquejob.h,
qt/src/signencryptjob.h,
qt/src/signjob.h,
qt/src/threadedjobmixin.h,
qt/src/verifydetachedjob.h,
qt/src/verifyopaquejob.h: Reduce boost usage.
Cpp: Require c++ 11 if cpp binding requested.
+ commit c07aaef6eb8a9b5e623479f27d562fd1570bf4bb
* configure.ac: Call ax_cxx_compile_stdcxx
* m4/ax_cxx_compile_stdcxx.m4
Qt: Add static factor methods for protocol.
+ commit 0991485170ca4ef90fd566540522027d0fc59a72
* lang/qt/src/qgpgmebackend.cpp (QGpgME::openpgp, QGpgME::smime): New.
* lang/qt/src/qgpgmebackend.h: Declare.
* lang/qt/tests/t-keylist.cpp (KeyListTest::testSingleKeyListSync):
Use new functions.
Qt: Add a unit test for qgpgme.
+ commit faf987dd62893955251378a2a715edd2892a540c
* configure.ac: Configure test Makefile.
* m4/qt.m4: Look up Qt5Test flags.
* lang/qt/tests/t-keylist.cpp: New. Simple keylist check.
* lang/qt/tests/Makefile.am: New. General test framework.
Qt: Add missing MOC includes.
+ commit b7b9e38399a572cb61a297db552026eac5b2a5e1
* qgpgmeadduseridjob.cpp,
qgpgmechangeexpiryjob.cpp,
qgpgmechangeownertrustjob.cpp,
qgpgmechangepasswdjob.cpp,
qgpgmedecryptjob.cpp,
qgpgmedecryptverifyjob.cpp,
qgpgmedeletejob.cpp,
qgpgmedownloadjob.cpp,
qgpgmeencryptjob.cpp,
qgpgmeexportjob.cpp,
qgpgmeimportfromkeyserverjob.cpp,
qgpgmeimportjob.cpp,
qgpgmekeygenerationjob.cpp,
qgpgmekeylistjob.cpp,
qgpgmelistallkeysjob.cpp,
qgpgmerefreshkeysjob.cpp,
qgpgmesecretkeyexportjob.cpp,
qgpgmesignencryptjob.cpp,
qgpgmesignjob.cpp,
qgpgmesignkeyjob.cpp,
qgpgmeverifydetachedjob.cpp,
qgpgmeverifyopaquejob.cpp: Add missing MOC includes.
Qt: Declare pure virtuals as such.
+ commit 0cc9006dbc59d87c6bcda88b36d59dcb69ac35cb
* lang/qt/src/qgpgmebackend.h (Protocol): Make all functions
pure virtual.
Qt: Don't declare showErrorDialog anymore.
+ commit 3e38cc6fc67c420dec3e9e8afd072b4c8a157c85
* cpp/qt/src/job.h: Remove showErrorDialog.
Qt: Only use GpgME based config class.
+ commit 7071b2a9c00b85d434d01b6166269ebf48b01b81
* lang/qt/src/qgpgmecryptoconfig.cpp,
lang/qt/src/qgpgmecryptoconfig.h: Removed.
* lang/qt/src/qgpgmebackend.cpp: Return newcryptoconfig.
2016-04-02 Andre Heinecke <aheinecke@intevation.de>
Add additional include path in config files.
+ commit 63c115b067400e1b02c7d849c99f54dc9f394d68
* lang/cpp/src/GpgmeppConfig.cmake.in.in
lang/qt/src/QGpgmeConfig.cmake.in.in: Include directory above headers.
Qt: Fix library name in nodist variable.
+ commit 576be46f34b42e896a5e3be65560a4b518a758be
* lang/qt/Makefile.am (nodist_qgpgme_SOURCES): Change to real name.
Add missing files to QGpgME.
+ commit a440050fc2c11e4867da9d4707616fa23ac52141
* lang/qt/src/gpgme_backend_debug.cpp,
lang/qt/src/gpgme_backend_debug.h,
lang/qt/src/predicates.h,
lang/qt/src/stl_util.h: New.
Add QGpgME code from libkleo.
+ commit 226e51052ae73efa8d9f30729b28de68d35231af
* lang/qt/src/Makefile.am,
lang/qt/src/abstractimportjob.h,
lang/qt/src/adduseridjob.h,
lang/qt/src/changeexpiryjob.h,
lang/qt/src/changeownertrustjob.h,
lang/qt/src/changepasswdjob.h,
lang/qt/src/cryptoconfig.h,
lang/qt/src/decryptjob.h,
lang/qt/src/decryptverifyjob.h,
lang/qt/src/deletejob.h,
lang/qt/src/downloadjob.h,
lang/qt/src/encryptjob.h,
lang/qt/src/exportjob.h,
lang/qt/src/hierarchicalkeylistjob.h,
lang/qt/src/importfromkeyserverjob.h,
lang/qt/src/importjob.h,
lang/qt/src/job.cpp,
lang/qt/src/job.h,
lang/qt/src/keygenerationjob.h,
lang/qt/src/keylistjob.h,
lang/qt/src/listallkeysjob.h,
lang/qt/src/multideletejob.h,
lang/qt/src/qgpgmeadduseridjob.cpp,
lang/qt/src/qgpgmeadduseridjob.h,
lang/qt/src/qgpgmebackend.cpp,
lang/qt/src/qgpgmebackend.h,
lang/qt/src/qgpgmechangeexpiryjob.cpp,
lang/qt/src/qgpgmechangeexpiryjob.h,
lang/qt/src/qgpgmechangeownertrustjob.cpp,
lang/qt/src/qgpgmechangeownertrustjob.h,
lang/qt/src/qgpgmechangepasswdjob.cpp,
lang/qt/src/qgpgmechangepasswdjob.h,
lang/qt/src/qgpgmecryptoconfig.cpp,
lang/qt/src/qgpgmecryptoconfig.h,
lang/qt/src/qgpgmedecryptjob.cpp,
lang/qt/src/qgpgmedecryptjob.h,
lang/qt/src/qgpgmedecryptverifyjob.cpp,
lang/qt/src/qgpgmedecryptverifyjob.h,
lang/qt/src/qgpgmedeletejob.cpp,
lang/qt/src/qgpgmedeletejob.h,
lang/qt/src/qgpgmedownloadjob.cpp,
lang/qt/src/qgpgmedownloadjob.h,
lang/qt/src/qgpgmeencryptjob.cpp,
lang/qt/src/qgpgmeencryptjob.h,
lang/qt/src/qgpgmeexportjob.cpp,
lang/qt/src/qgpgmeexportjob.h,
lang/qt/src/qgpgmeimportfromkeyserverjob.cpp,
lang/qt/src/qgpgmeimportfromkeyserverjob.h,
lang/qt/src/qgpgmeimportjob.cpp,
lang/qt/src/qgpgmeimportjob.h,
lang/qt/src/qgpgmekeygenerationjob.cpp,
lang/qt/src/qgpgmekeygenerationjob.h,
lang/qt/src/qgpgmekeylistjob.cpp,
lang/qt/src/qgpgmekeylistjob.h,
lang/qt/src/qgpgmelistallkeysjob.cpp,
lang/qt/src/qgpgmelistallkeysjob.h,
lang/qt/src/qgpgmenewcryptoconfig.cpp,
lang/qt/src/qgpgmenewcryptoconfig.h,
lang/qt/src/qgpgmerefreshkeysjob.cpp,
lang/qt/src/qgpgmerefreshkeysjob.h,
lang/qt/src/qgpgmesecretkeyexportjob.cpp,
lang/qt/src/qgpgmesecretkeyexportjob.h,
lang/qt/src/qgpgmesignencryptjob.cpp,
lang/qt/src/qgpgmesignencryptjob.h,
lang/qt/src/qgpgmesignjob.cpp,
lang/qt/src/qgpgmesignjob.h,
lang/qt/src/qgpgmesignkeyjob.cpp,
lang/qt/src/qgpgmesignkeyjob.h,
lang/qt/src/qgpgmeverifydetachedjob.cpp,
lang/qt/src/qgpgmeverifydetachedjob.h,
lang/qt/src/qgpgmeverifyopaquejob.cpp,
lang/qt/src/qgpgmeverifyopaquejob.h,
lang/qt/src/refreshkeysjob.h,
lang/qt/src/signencryptjob.h,
lang/qt/src/signjob.h,
lang/qt/src/signkeyjob.h,
lang/qt/src/specialjob.h,
lang/qt/src/threadedjobmixin.cpp,
lang/qt/src/threadedjobmixin.h,
lang/qt/src/verifydetachedjob.h,
lang/qt/src/verifyopaquejob.h: New.
* lang/qt/src/Makefile.am:
2016-03-08 Andre Heinecke <aheinecke@intevation.de>
Add qgpgme as qt language binding.
+ commit 8347f3d5fc3e476aa767fbbaf09a1310a6154280
* configure.ac: Add version defines. Check for qt if neccessary.
* lang/README: Mention qt
* lang/cpp/src/GpgmeppConfig.cmake.in.in: Remove comment. Find qgpgme.
* lang/qt/src/Makefile.am: New. Build qgpgme.
* lang/qt/README,
lang/qt/src/Makefile.am,
lang/qt/src/QGpgmeConfig.cmake.in.in,
lang/qt/src/QGpgmeConfigVersion.cmake.in,
lang/qt/src/dataprovider.cpp,
lang/qt/src/dataprovider.h,
lang/qt/src/qgpgme_export.h,
m4/qt.m4: New.
* lang/cpp/src/GpgmeppConfig.cmake.in.in,
lang/cpp/src/Makefile.am: Fix generated config file.
Remove obsolete w32-qt code.
+ commit 58ed9c17f00f420035ecc6973a6c6ed948757a9a
* configure.ac (w32-qt): Remove option and Qt checks.
* src/Makefile.am: Remove BUILD_W32_QT handling.
* src/kdpipeiodevice.cpp,
src/kdpipeiodevice.h,
src/kdpipeiodevice.moc,
src/w32-qt-io.cpp: Removed.
2016-03-02 Andre Heinecke <aheinecke@intevation.de>
Add version info for gpgmepp.
+ commit a06603d75e80aba58df58f9a41770c56b6a1f0b8
* lang/cpp/src/Makefile.am (libgpgmepp_la_LDFLAGS): Add version info.
Add cmake configuration files.
+ commit 77c3fb450c7adf36804a55d76ff49a06a71d22a0
* configure.ac: Add libgpgmepp version. Configure cmake files.
* lang/cpp/src/Makefile.am: Add targets for cmake files.
(EXTRA_DIST): Add cmake files.
Fix export header and windows export macros.
+ commit 98e5b672422ca1e38ca38ff0357cee6cc936aee0
* lang/cpp/src/gpgme_export.h: Fix variable name. Add Windows ifdefs.
Add header installation.
+ commit c5291a88913ace8f2115021b69c7aeb59b4f79d4
* lang/cpp/src/Makefile.am: Add headers as deps and install them.
(AM_CPPFLAGS): Add BUILDING_GPGMEPP to be used in export macros.
Add enable-languages build option.
+ commit a313b3e28cc42785365822519b25d6a87dfdf0c9
* acinclude.m4 (LIST_MEMBER): New macro.
* configure.ac (enable-languages): New option. Add info output.
* lang/Makefile.am: Only add enabled language subdirs.
2016-02-22 Andre Heinecke <aheinecke@intevation.de>
Add README for gpgmepp.
+ commit 7286fc7f3d51d475f82c7c9821d031290f5b0066
* lang/README: Note down cpp.
* cpp/README: Add README based on original repo version.
Add buildsystem for Gpgmepp.
+ commit f5fd787b5b45cb14d539b5c26f44066eb9ac0f75
* configure.ac: Configure Makefiles.
* lang/Makefile.am: Add cpp subdir
* lang/cpp/Makefile.am: New. Add src subdir.
* lang/cpp/src/Makefile.am: New. Basic buildsystem.
Remove feature check ifdefs.
+ commit 433bb8e84b2d1e50b5c5b9f7f2006b60cd7d7785
* lang/cpp/src/assuanresult.cpp,
lang/cpp/src/callbacks.cpp,
lang/cpp/src/configuration.cpp,
lang/cpp/src/context.cpp,
lang/cpp/src/context_glib.cpp,
lang/cpp/src/context_qt.cpp,
lang/cpp/src/context_vanilla.cpp,
lang/cpp/src/data.cpp,
lang/cpp/src/decryptionresult.cpp,
lang/cpp/src/defaultassuantransaction.cpp,
lang/cpp/src/editinteractor.cpp,
lang/cpp/src/encryptionresult.cpp,
lang/cpp/src/engineinfo.cpp,
lang/cpp/src/eventloopinteractor.cpp,
lang/cpp/src/global.h,
lang/cpp/src/gpgagentgetinfoassuantransaction.cpp,
lang/cpp/src/importresult.cpp,
lang/cpp/src/interfaces/assuantransaction.h,
lang/cpp/src/key.cpp,
lang/cpp/src/keygenerationresult.cpp,
lang/cpp/src/keylistresult.cpp,
lang/cpp/src/scdgetinfoassuantransaction.cpp,
lang/cpp/src/signingresult.cpp,
lang/cpp/src/trustitem.cpp,
lang/cpp/src/util.h,
lang/cpp/src/verificationresult.cpp,
lang/cpp/src/vfsmountresult.cpp: Remove feature checks.
Initial checkin of gpgmepp sources.
+ commit 0855a1296a1908016f011eb5e6552854ac53e63a
Based on git.kde.org/pim/gpgmepp rev. 0e3ebc02
* lang/cpp/src/assuanresult.cpp,
lang/cpp/src/assuanresult.h,
lang/cpp/src/callbacks.cpp,
lang/cpp/src/callbacks.h,
lang/cpp/src/configuration.cpp,
lang/cpp/src/configuration.h,
lang/cpp/src/context.cpp,
lang/cpp/src/context.h,
lang/cpp/src/context_glib.cpp,
lang/cpp/src/context_p.h,
lang/cpp/src/context_qt.cpp,
lang/cpp/src/context_vanilla.cpp,
lang/cpp/src/data.cpp,
lang/cpp/src/data.h,
lang/cpp/src/data_p.h,
lang/cpp/src/decryptionresult.cpp,
lang/cpp/src/decryptionresult.h,
lang/cpp/src/defaultassuantransaction.cpp,
lang/cpp/src/defaultassuantransaction.h,
lang/cpp/src/editinteractor.cpp,
lang/cpp/src/editinteractor.h,
lang/cpp/src/encryptionresult.cpp,
lang/cpp/src/encryptionresult.h,
lang/cpp/src/engineinfo.cpp,
lang/cpp/src/engineinfo.h,
lang/cpp/src/error.h,
lang/cpp/src/eventloopinteractor.cpp,
lang/cpp/src/eventloopinteractor.h,
lang/cpp/src/exception.cpp,
lang/cpp/src/exception.h,
lang/cpp/src/global.h,
lang/cpp/src/gpgadduserideditinteractor.cpp,
lang/cpp/src/gpgadduserideditinteractor.h,
lang/cpp/src/gpgagentgetinfoassuantransaction.cpp,
lang/cpp/src/gpgagentgetinfoassuantransaction.h,
lang/cpp/src/gpgmefw.h,
lang/cpp/src/gpgmepp_export.h,
lang/cpp/src/gpgsetexpirytimeeditinteractor.cpp,
lang/cpp/src/gpgsetexpirytimeeditinteractor.h,
lang/cpp/src/gpgsetownertrusteditinteractor.cpp,
lang/cpp/src/gpgsetownertrusteditinteractor.h,
lang/cpp/src/gpgsignkeyeditinteractor.cpp,
lang/cpp/src/gpgsignkeyeditinteractor.h,
lang/cpp/src/importresult.cpp,
lang/cpp/src/importresult.h,
lang/cpp/src/key.cpp,
lang/cpp/src/key.h,
lang/cpp/src/keygenerationresult.cpp,
lang/cpp/src/keygenerationresult.h,
lang/cpp/src/keylistresult.cpp,
lang/cpp/src/keylistresult.h,
lang/cpp/src/notation.h,
lang/cpp/src/result.h,
lang/cpp/src/result_p.h,
lang/cpp/src/scdgetinfoassuantransaction.cpp,
lang/cpp/src/scdgetinfoassuantransaction.h,
lang/cpp/src/signingresult.cpp,
lang/cpp/src/signingresult.h,
lang/cpp/src/trustitem.cpp,
lang/cpp/src/trustitem.h,
lang/cpp/src/util.h,
lang/cpp/src/verificationresult.cpp,
lang/cpp/src/verificationresult.h,
lang/cpp/src/vfsmountresult.cpp,
lang/cpp/src/vfsmountresult.h,
lang/cpp/src/interfaces/assuantransaction.h,
lang/cpp/src/interfaces/dataprovider.h,
lang/cpp/src/interfaces/passphraseprovider.h,
lang/cpp/src/interfaces/progressprovider.h: New.
2016-01-15 Werner Koch <wk@gnupg.org>
Fix possible _SC_OPEN_MAX max problem on AIX.
+ commit e79199468ac54ce4fe919603ff7bada97267174f
* src/posix-io.c [HAVE_STDINT_H]: Include stdint.h.
(get_max_fds): Limit returned value for too high values.
2015-12-09 Werner Koch <wk@gnupg.org>
w32: Avoid conflict with Mingw-w64 version 4.0.4-1.
+ commit 83415dffaea53611dbce77b50d8ddfb2a50aed2e
* src/w32-util.c (mkstemp): Rename to my_mkstemp. Change caller.
2015-12-04 Daiki Ueno <ueno@gnu.org>
Return on user cancellation of delete operation.
+ commit 67d7f7a9383763b01daf877c846bf3e32f647fa5
* src/delete.c (delete_status_handler): Return on ERROR status, if the
error location is set to "delete_key.secret" and the code is either
CANCELED or FULLY_CANCELED, which indicates a situation that the user
selected "No" on the confirmation dialog.
doc: Fix minor errors.
+ commit 3b6e9a3d0afcdd3c2f1de19f15924c3404c7140a
* doc/gpgme.texi: Fix errors and typos in the cancellation and
gpgme_import_result_t documentation.
2015-10-29 Ben Kibbey <bjk@luxsci.net>
Make use of user passphrase handler during passwd.
+ commit dfa79f9300b837b0f7f2ea44afa589bfcda1dbd9
* src/passwd.c (passwd_start): set engine passphrase command handler.
2015-10-28 Werner Koch <wk@gnupg.org>
w32: Add extra diagnostic about possible missing gpgme-w32spawn.exe.
+ commit bb2d11c1eebd4bcfb0f2cfce728026a7420dca47
* src/w32-io.c (_gpgme_io_spawn): Add a new diagnostic.
w32: Improve locating gpgconf on 64 bit systems.
+ commit a82e9b182f62966207cad0972be6fa284329a5a1
* src/w32-util.c (find_program_at_standard_place): Fallback to
CSIDL_PROGRAM_FILESX86.
w32: Add new global flag "w32-inst-dir".
+ commit bb600aa8fd2f9575ee7afc64c978e3e7523b1173
* src/gpgme.c (gpgme_set_global_flag): Add flag "w32-inst-dir";
* src/posix-util.c (_gpgme_set_override_inst_dir): New stub.
* src/w32-util.c (override_inst_dir): New var.
(_gpgme_get_inst_dir): Return this var is set.
(_gpgme_set_override_inst_dir): New.
2015-10-16 NIIBE Yutaka <gniibe@fsij.org>
cleanup: Fix type mismatch around gpgme_error_t.
+ commit 0d9d0a6b5b0c6f474a079bbaef11078c5df5f3b5
* src/data-compat.c (gpgme_error_to_errno): Use gpg_err_code
to get error code from gpgme_error_t.
* src/gpgme.c (gpgme_new): Don't use gpgme_error.
2015-08-31 Werner Koch <wk@gnupg.org>
gpgme-tool: Switch to argparse.c for option parsing.
+ commit f0ccce855bd99fca7cfbbcafe3544e3113fedc67
* src/argparse.c, src/argparse.h: New. Taken from current gnupg.
* src/Makefile.am (gpgme_tool_SOURCES): New.
* src/gpgme-tool.c: Remove all argp.h stuff.
(my_strusage): New.
(main): Change to use argparse.
2015-08-30 Werner Koch <wk@gnupg.org>
Add gpgme_pubkey_algo_string.
+ commit c4b6b35bfa98e478f1d13f4ce3e664771f2604c2
* src/gpgme.h.in (GPGME_PK_EDDSA): New.
(gpgme_pubkey_algo_string): New.
* src/conversion.c (_gpgme_map_pk_algo): Add new algo.
* src/gpgme.c (gpgme_pubkey_algo_string): New.
(gpgme_pubkey_algo_name): Reformat.
2015-08-26 Werner Koch <wk@gnupg.org>
Release 1.6.0.
+ commit 107bff70edb611309f627058dd4777a5da084b1a
* configure.ac: Set LT version to C25/A14/R0.
Make use of GPGRT macros is available.
+ commit c4f4b5c0a6fc172f7ceedc1a0021169e7f31b941
* src/gpgme.h.in (_GPGME_INLINE): Define using GPGRT_INLINE if
possible. Fix problem with -Wundef by adding an extra "defined()".
(_GPGME_GCC_VERSION): Define using GPGRT_ macro if possible.
2015-08-25 Werner Koch <wk@gnupg.org>
Avoid -Wundef warnings if gpgme.h is used by g++.
+ commit 3f53d3d5d9e73a053b1e89073ef8f7cf01bfc8e6
* src/gpgme.h.in (_GPGME_INLINE): Move definition into the
extern-C-scope.
Add configure option --enable-build-timestamp.
+ commit ff91e699f7c14ea6cbc27b487cb40e9f6bd58901
* configure.ac (BUILD_TIMESTAMP): Set to "<none>" by default.
2015-08-25 Daiki Ueno <ueno@gnu.org>
Relax ttyname_r error checks.
+ commit 028a0ef3336c5180797fb247448683195376c007
* src/engine-assuan.c (llass_new): Don't treat ttyname_r error as
fatal.
* src/engine-g13.c (g13_new): Likewise.
* src/engine-gpg.c (gpg_new): Likewise.
* src/engine-gpgsm.c (gpgsm_new): Likewise.
* src/engine-uiserver.c (uiserver_new): Likewise.
2015-08-25 Werner Koch <wk@gnupg.org>
Cleanup layout of gpgme.h.
+ commit 97f1f3e883808743da5ee144abab25de062f34ac
* src/gpgme.h.in: Reorder prototypes. Chnage some comments.
Improve error return by checking the FAILURE status.
+ commit 8ddc5801ade02297924447df5745c8877a96e5e3
* src/gpgme.h.in (GPGME_STATUS_FAILURE): New.
* src/status-table.c (FAILURE): New.
* src/op-support.c (_gpgme_parse_failure): New.
* src/passphrase.c (_gpgme_passphrase_status_handler): Forward FAILURE
status line to the status callback.
* src/decrypt.c (op_data_t): Add field failure_code.
(_gpgme_decrypt_status_handler): Parse that code and act upon it on EOF.
* src/encrypt.c (op_data_t): Add field failure_code.
(_gpgme_encrypt_status_handler): Parse that code and act upon it on EOF.
* src/genkey.c (op_data_t): Add field failure_code.
(genkey_status_handler): Parse that code and act upon it on EOF.
* src/passwd.c (op_data_t): Add field failure_code.
(passwd_status_handler): Parse that code and act upon it on EOF.
* src/sign.c (op_data_t): Add field failure_code.
(_gpgme_sign_status_handler): Parse that code and act upon it on EOF.
* src/verify.c (op_data_t): Add field failure_code.
(_gpgme_verify_status_handler): Parse that code and act upon it on EOF.
tests: Allow using run-sign to test loopback pinentry problems.
+ commit 491fcd91b84564232d5d061942baa50b99e166c0
* tests/run-sign.c: Add options --status and --loopback.
2015-08-24 Werner Koch <wk@gnupg.org>
Call status_cb for an ERROR status seen in the passphrase handler.
+ commit ad46f4f655e653580343c15f1b0b365b7d307d1b
* src/passphrase.c (_gpgme_passphrase_status_handler): Call status_cb.
w32: Look for gpgconf in the new GnuPG 2.1 install dir.
+ commit a7dbab23ea4976d106d649aa515ffb2968a085ed
* src/w32-util.c (_gpgme_get_gpgconf_path): Try another location of
gpgconf.exe.
w32: Expect gpgme-w32spawn.exe only in the gpgme installation dir.
+ commit 06d6fd8ca01354c8f7cfc847c4ac1b868268cbaa
* src/w32-util.c (find_program_at_standard_place): Remove.
(_gpgme_get_gpg_path): Make the search order more explicit.
(_gpgme_get_gpgconf_path): Ditto.
(_gpgme_get_w32spawn_path): Search only in the inst_dir.
w32: Print the installation directory in debug mode.
+ commit df098d6a437109c57516db75addf3764a6dfda81
* src/debug.c (debug_init) [W32]: Show libgpgme installation dir.
Add an export secret key feature.
+ commit 2b632bbb78eee2b94c122f66d171a7c80e9c4fb0
* src/gpgme.h.in (GPGME_EXPORT_MODE_SECRET): New.
(GPGME_EXPORT_MODE_RAW): New.
(GPGME_EXPORT_MODE_PKCS12): New.
* src/export.c (export_start, export_ext_start): Allow new flags.
* src/engine-gpg.c (export_common): Support secret key export.
* src/engine-gpgsm.c (gpgsm_export, gpgsm_export_ext): Ditto.
* src/gpgme-tool.c (cmd_export): Add options --secret, --raw,
and --pkcs12.
* tests/run-export.c (main): Likewise.
2015-08-16 Ben Kibbey <bjk@luxsci.net>
Parse INQUIRE_MAXLEN in the passphrase callback.
+ commit ccbaccbf2e0ba582d181b9ee4d8543d7c1248b2c
* src/passphrase.c (_gpgme_passphrase_status_handler): Parse
GPGME_STATUS_INQUIRE_MAXLEN.
* src/passphrase.c (_gpgme_passphrase_command_handler): Send the
INQUIRE_MAXLEN status message.
Fix gpgme_{get,set}_status_cb to match documentation.
+ commit 70b3e5964ea0592bd09d1877d720b2c63f501970
* doc/gpgme.texi: Minor fixes.
* src/gpgme.c (gpgme_get_status_cb): Set return variables to NULL and
check for a valid ctx pointer.
Parse the INQUIRE_MAXLEN status message.
+ commit 6dd24c3c6133ec54f75abd056191a8027fe01de0
* src/gpgme.h.in: (gpgme_status_code_t): Add INQUIRE_MAXLEN.
* src/status-table.c (status_table_s): Ditto.
* src/genkey.c (genkey_status_handler): Parse INQUIRE_MAXLEN.
* src/decrypt.c (_gpgme_decrypt_status_handler): Ditto.
* src/sign.c (_gpgme_sign_status_handler): Ditto.
This status message informs the client of the maximum length of an
inquired line. It is sent from gpg and forwarded to the client via
gpgme_status_cb_t.
Add gpgme_set/get_status_cb().
+ commit 4fadcf06ec8b0ebfb05c7622dbc3b73fd3c1bad9
* src/gpgme.h.in (gpgme_set_status_cb): New.
(gpgme_get_status_cb): New.
(gpgme_status_cb_t): New.
* src/gpgme.c (gpgme_set_status_cb): New.
(gpgme_get_status_cb): New.
* src/context.h (status_cb): New.
(status_cb_value): New.
* src/gpgme.def: Export new symbols.
* src/libgpgme.vers: Ditto.
* doc/gpgme.texi: Document these new functions.
Make use of user passphrase handler during genkey.
+ commit 2b6ae3dadf4432f7a72fd119144b835f7b1adcc4
* src/genkey.c (genkey_start): set engine passphrase command handler.
2015-08-12 Ben Kibbey <bjk@luxsci.net>
Also check the return code in gpg_sign().
+ commit e07d38f5f9f3b94e403f1265ff7fd3d7009dd557
* src/engine-gpg.c (gpg_sign): Check return value from start().
2015-08-11 Ben Kibbey <bjk@luxsci.net>
Check the return value when starting gpg.
+ commit 8f28e3caf95d7bc99e9271bfc2b44080166af31f
* src/engine-gpg.c (gpg_decrypt, gpg_delete, gpg_passwd): Check return
value of start().
2015-08-02 Ben McGinnes <ben@adversary.org>
More GTK2 removal.
+ commit a7fbd5293ed0ba2c179837a4a2b859376d30e35e
* Missed a couple of files, these 2 go for the same reason as the
previous 3.
Removed GUI examples.
+ commit 1cd0aef0afb196094d90673002d4c210a04911c9
* GUI examples written with pygtk, which has not been ported to Python
3 and won't be as it is for GTK2 and GNOME is moving to GTK3.
* New GUI examples may be required in future using any of several GUI
frameworks (e.g. wxPython, PyQt, PySide, PyGObject, etc.).
2015-07-31 Andre Heinecke <aheinecke@intevation.de>
Add offline mode support for CMS keylisting.
+ commit 08086dd6901740e155e4361212b4e9cff8a47296
* doc/gpgme.texi: Document offline mode.
* src/context.h (gpgme_context): Add offline.
* src/engine-backend.h (keylist, keylist_ext): Add engine_flags.
* src/engine.c, src/engine.h (_gpgme_engine_op_keylist): Ditto.
(_gpgme_engine_op_keylist_ext): Ditto.
* src/engine.h (GPGME_ENGINE_FLAG_OFFLINE): New.
* src/engine-gpg.c (gpg_keylist, gpg_keylist_ext): Ditto.
* src/engine-gpgsm.c (gpgsm_keylist): Handle engine_flags.
(gpgsm_keylist_ext): Ditto.
* src/gpgme.c (gpgme_set_offline, gpgme_get_offline): New.
* src/gpgme.def (gpgme_set_offline, gpgme_get_offline): New.
* src/gpgme.h.in (gpgme_set_offline, gpgme_get_offline): New.
* src/libgpgme.vers (gpgme_set_offline, gpgme_get_offline): New.
* src/keylist.c (gpgme_op_keylist_start): Set offline flag.
(gpgme_op_keylist_ext_start): Ditto.
* tests/run-keylist.c (show_usage, main): Add offline argument.
2015-07-23 Peter Wu <peter@lekensteyn.nl>
build: ignore scissor line for the commit-msg hook.
+ commit 157c8be183153ff588f98874a3205aa483d0fd23
* build-aux/git-hooks/commit-msg: Stop processing more lines when the
scissor line is encountered.
2015-07-23 Werner Koch <wk@gnupg.org>
Add option --lib-version to gpgme-tool.
+ commit c23f8897105ce2bb6e62d9c44ca0779fcc08a919
* src/gpgme-tool.c (options, parse_options): Add --lib-version
(CMD_LIBVERSION): New.
(main): Implement.
2015-06-08 Werner Koch <wk@gnupg.org>
Release 1.5.5.
+ commit 052a9e3c5671d1ab69551f7b0abd0bbf859d4aba
Fix regression with gpgsm 2.0 due to "OPTION with-secret".
+ commit ddbd54ef881bd2c3481d62b89bef7241667b64ee
* src/engine-gpgsm.c (gpgsm_assuan_simple_command): Do not terminate
on a status lines.
tests: Add option --secret to run-keylist.
+ commit 7addffc0826e7f36afcc7f66268e9ee2a37e2042
Fix compiler warnings about unused value in TRACE macros.
+ commit 8b9f84828cd04a7dab37e219123edc1905da8e6b
* src/debug.h: Change macros to not have a literal 0 as last
expression of the comma operator.
* src/debug.c (_gpgme_debug_frame_end): Return 0.
(_gpgme_debug): Return 0.
Fix test suite for GnuPG 2.1 which uses pubring.kbx.
+ commit a5b040cc57c65b3d105666b90c7eb59ee6ff3882
* tests/gpgsm/final.test: New.
* tests/gpgsm/initial.test: New.
* tests/gpg/start-stop-agent: Move to ../.
* tests/gpgsm/Makefile.am (TESTS_ENVIRONMENT): Export top_srcdir.
(TESTS): Add intial.test and final.test.
(AM_LDFLAGS): Add -no-install.
(clean-local): Use start-stop-agent
(initial.test): Add dependency.
* tests/gpg/Makefile.am (top_srcdir): Export top_srcdir.
(AM_LDFLAGS): Add -no-install.
(check-local): Depend on pubring-stamp instead of pubring.gpg.
(initial.test): Depend on check-local.
(./pubring-gpg): Replace by rule for ./pubring-stamp.
2015-06-05 Matthew Barnes <mbarnes@redhat.com>
Set GPGME_SIGSUM_KEY_REVOKED also for gpg.
+ commit 87d713ff41454bd08a345c63605f6fc7ac854dd4
* src/verify.c (calc_sig_summary): Handle GPG_ERR_CERT_REVOKED.
2015-06-05 Werner Koch <wk@gnupg.org>
Fix segv for userids with a backslash.
+ commit 0d28a696163677d6b34a802b6beddecd805d0fc7
* src/engine-gpg.c (gpg_keylist_preprocess): Increment SRC for a
backslash.
2015-05-16 Ben McGinnes <ben@adversary.org>
Python 3 port of PyME.
+ commit 90405ac84b78ba7e5458ea09986749594a01195a
* Port of PyME 0.9.0 for Python 2 to Python 3 along with most of the
example scripts.
* Intended to be developed in parallel with the original Python 2
version until such time as a rewrite of GPGME leads to developing an
IO API in Python 3 from scratch.
* Python 3 PyME and API maintainer has entered, stage left with current
GPG key ID 0x321E4E2373590E5D, primary fingerprint is "DB47 24E6 FA42
86C9 2B4E 55C4 321E 4E23 7359 0E5D" and signing subkey fingerprint is
"B7F0 FE75 9387 430D D0C5 8BDB 7FF2 D371 35C7 553C" for future
reference with git commit signatures.
Explaining why not all scripts work.
+ commit 29887c9b28c0db14bf75e227a8082d23a2c151d2
* Some of them cannot be properly tested on OS X, especially with GTK in
the mix (it works on OS X, but is unlikely to be as easily accessible
as Cocoa or Qt).
* Most major functions are showcased and do work, albeit sometimes with
false positives of error messages, at least on OS X.
Byte encoding.
+ commit c39cea7a07cec9ab34cd2026f47b6fba80fea3c8
* More string updates.
* verifydetails.py still fails, but as Bernhard is still contactable, it
might be worth him checking on it instead.
No change, note added to explain why.
+ commit 0e6e6689ef1aea36c1cb3cb47e94f1f2ebbd97cb
Strings vs. Bytes.
+ commit 40290507bcdc63ab9023393d071167d455d70737
* CLI input must be byte encoded.
More byte changes and passphrase changes.
+ commit 325b0ca341ae3ac8c3232f557ea2c381b4843969
* exportimport works, but will still segfault for an as yet unknown
reason.
* genkey produces a traceback error, but does create the key as
intended.
* matched passphrase in signverify.
More bytes good.
+ commit ba3c9f2617955dc828309a4800e4f5b3f1c3a949
* Another string to byte change.
Updated encrypt-to-all.
+ commit 1c87ecb86ae364b18f69bca726021271fefaa1c1
* Changed plaintext string to byte literal.
* Nested key selection in a try/except statement in case of
UnicodeEncodeError instances.
* Tested successfully on over 9,000 keys.
Passphrase update.
+ commit 24c738f5bb5c253a17962c62867d6c847250b41e
* Changed example passphrase to something that meets the current minimum
requirements.
example email.
+ commit 8345bf6f43c4f671124eaa1b713a7f5ac5780cbd
* changed joe@foo.bar to joe@example.org as it is only a matter of time
before ICANN actually creates bar as a gTLD, if they haven't already.
Updated string and key data.
+ commit 4fc123981514c7087114e08ee8ca63de1a1db59f
* Text changed to byte literals.
* Changed key type to RSA/RSA.
* Changed expiry to the future (2020).
2015-05-08 Ben McGinnes <ben@adversary.org>
String type.
+ commit 90079786c5cde4dd8ceb2e0fcda7605b08ccd021
* the plain text string must be bytes and not unicode.
* Expect most of the example code to have similar issues at present.
2015-05-05 Ben McGinnes <ben@adversary.org>
Python 3 port of PyME.
+ commit ebd8734ad705afa4edc409787a00d4968d25e018
* The entirety of the Python 3 port of PyME up to commit
2145348ec54c6027f2ea20f695de0277e2871405
* The old commit log has been saved as
lang/py3-pyme/docs/old-commits.log
* Can be viewed as a normal (separate) git repository at
https://github.com/adversary-org/pyme3
* Utilising the submodule feature of git was deliberately skipped on
humanitarian grounds (in order to prevent pain and suffering on the
part of anyone having to manage this repository).
2015-04-13 Werner Koch <wk@gnupg.org>
Release 1.5.4.
+ commit d2712d9f6f086911184453219a096c61f6829d3b
w32: Use -static-libgcc to avoid linking to libgcc_s_sjlj-1.dll.
+ commit 524dacfbb6bb131f05a4ecab3d7bcd91c1b43d33
* src/Makefile.am (extra_ltoptions): New.
(libgpgme_la_LDFLAGS): Use it.
(libgpgme_pthread_la_LDFLAGS): Ditto.
(libgpgme_glib_la_LDFLAGS): Ditto.
2015-03-16 Werner Koch <wk@gnupg.org>
Fix potential crash in trace macro.
+ commit 8cfcdfe5564f87362e5ec1bfdca5c14aed9c45f0
* src/signers.c (gpgme_signers_add): Avoid deref of a NULL KEY in the
trace macro.
* src/engine-spawn.c (engspawn_release): Remove always true condition.
* src/engine-gpg.c (gpg_release): Ditto.
Fix one byte too short malloc.
+ commit 119f27032b822ace8c012b96f9e41bcf23251a54
* src/engine-spawn.c (add_data): Fix malloc
2015-01-30 Werner Koch <wk@gnupg.org>
Switch to automake 1.14 and update build-aux files.
+ commit 428ea7696585bc24d127b903840554ca659069b6
2014-12-11 Werner Koch <wk@gnupg.org>
Release 1.5.3.
+ commit 37d927a9706fff6d8ef8d45073984ea2f92afb31
* configure.ac: Set LT version to C24/A13/R2.
2014-12-08 Werner Koch <wk@gnupg.org>
Return an error for some export key operations.
+ commit 05258d427513a933f01d4df13aca834d797f91e7
* src/context.h (OPDATA_EXPORT): New.
* src/export.c (op_data_t): New.
(release_op_data): New.
(parse_error): New.
(export_status_handler): New.
(export_start, export_ext_start): Prepare op_data.
(gpgme_op_export_ext, gpgme_op_export_keys): Return an error from the
status handler.
2014-11-21 Werner Koch <wk@gnupg.org>
Release 1.5.2.
+ commit c62ce32b9c01ee9ceb1d69e7344fb79a9162d232
* configure.ac: Set LT version to C24/A13/R1.
Update the previous commit.
+ commit 81ce87111f5a3f966188629abb07a4d0702e6db0
* src/sign.c (gpgme_op_sign_result): Reformat and take care of failed
malloc.
2014-11-21 Ben Kibbey <bjk@luxsci.net>
Fix returning new signatures when there are none.
+ commit 5942b0c7e0593b82b4c4a142c214d7a2649de104
* src/sign.c (gpgme_op_sign_result): Test that invalid and valid
signatures add up to gpgme_signers_count().
2014-11-06 Werner Koch <wk@gnupg.org>
Improve the debug output a bit.
+ commit 8031341283f4fcb1f226aa6f66bc5a6042586815
* src/debug.h (TRACE_ERR): Include the line number in the output.
2014-10-02 Werner Koch <wk@gnupg.org>
build: Implement SYSROOT feature.
+ commit 4027a0a89724df3aeef8a964c529548d724b6a5a
* configure.ac: Document SYSROOT.
* m4/gpg-error.m4: Update from libgpg-error master.
* src/gpgme.m4: Implement SYSROOT stuff.
2014-09-24 Werner Koch <wk@gnupg.org>
tests: Delay some test file extraction until "make check".
+ commit 2e8ecc24cf74f918c303c315da3bb18636a5e288
* tests/gpg/Makefile.am (all-local): Change to check-local.
* tests/gpgsm/Makefile.am (all-local): Ditto.
2014-09-24 Daniel Kahn Gillmor <dkg@fifthhorseman.net>
Clean up gpgme's tests/gpg when gpg2.1 is available.
+ commit 36997e0f746ce2d38de997055141542583cc0f52
* tests/gpg/Makefile.am: Clean up .gpg-v21-migrated
2014-08-12 Werner Koch <wk@gnupg.org>
gpgme-tool: Print fingerprint and keyid with keyservers.
+ commit 4160ef90a1b1b778c735f31f98a6966ba3b3ea90
* src/gpgme-tool.c (cmd_keylist): Print keyid. Print FPR only if
available.
Handle modern keyserver output which may emit the fingerprint.
+ commit 3450bff52baef2c14118958cf79ead46940d58f0
* src/engine-gpg.c (read_colon_line): Split preprocessed lines.
(gpg_keylist_preprocess): Limit keyid field and print fingerprint.
gpgme-tool: Install gpgme-tool.
+ commit 488e44cdb531035fa8813b95b212f9728abc7e62
* src/Makefile.am (bin_PROGRAMS): New. Add gpgme-tools.
(noinst_PROGRAMS): Remove.
gpgme-tool: Fix segv for external key listing.
+ commit e5ab11607281b9838da2728268a8f9f0daa2b04d
* src/gpgme-tool.c (result_xml_escape): Allow for DATA being NULL.
2014-07-30 Werner Koch <wk@gnupg.org>
Release 1.5.1.
+ commit 16835c3b5d1cea18512b2c93e884d8ca513a2ee7
* configure.ac: Change LT version to C24/A13/R0.
Fix possible realloc overflow for gpgsm and uiserver engines.
+ commit 2cbd76f7911fc215845e89b50d6af5ff4a83dd77
* src/engine-gpgsm.c (status_handler):
* src/engine-uiserver.c (status_handler):
2014-06-26 Werner Koch <wk@gnupg.org>
w32: Get IOSPAWN flag back in sync with spawn helper.
+ commit 68116fa5f67238a60bb8be375cc959262fa021d3
* src/gpgme-w32spawn.c: Include priv-io.h.
2014-06-10 Werner Koch <wk@gnupg.org>
Add new reason codes to the INV_RECP status code.
+ commit 86260b47c9e306e325103d1af767842357647e60
* src/op-support.c (_gpgme_parse_inv_recp): Add codes 13 and 14.
2014-06-04 Werner Koch <wk@gnupg.org>
Add new keylist mode GPGME_KEYLIST_MODE_WITH_SECRET.
+ commit 4dc9af24156b4fd52c7b76e7522b9b7a64e5386a
* src/gpgme.h.in (GPGME_KEYLIST_MODE_WITH_SECRET): New.
* src/engine-gpg.c (gpg_keylist_build_options): Handle new mode.
* src/engine-gpgsm.c (gpgsm_keylist, gpgsm_keylist_ext): Ditto.
* src/keylist.c (parse_sec_field15): Add arg key and take care of
--with-secret output.
* src/gpgme-tool.c (gt_get_keylist_mode, cmd_keylist_mode): Add
"with_secret". Print card info and and secret flag for subkeys.
2014-05-21 Werner Koch <wk@gnupg.org>
Release 1.5.0.
+ commit 0eca21113c1d1ab2aea58e1ea21075f472f99c23
* configure.ac: Change LT version to C22/A11/R0.
2014-05-13 Werner Koch <wk@gnupg.org>
Add 6 new GPGME_STATUS_ codes.
+ commit de6caeed6d6432101c673c35717f152d5facf823
* src/status-table.c: Also add missing DECRYPTION_INFO entry.
2014-05-08 Werner Koch <wk@gnupg.org>
Add field CURVE to the key info.
+ commit 88f15336ec0eadde68ff2618349efb9006b8e801
* src/gpgme.h.in (struct _gpgme_subkey): Add field CURVE.
* src/key.c (gpgme_key_unref): Free CURVE.
* src/keylist.c (keylist_colon_handler): Set CURVE.
* src/gpgme.c (gpgme_release): For failsafe reasons reset engine and
engine info after freeing.
Fix a memory access and a double slash bug.
+ commit de4a1ea684e1591975feb801e7651309e1ee2c49
* src/engine-spawn.c (engspawn_start): Allocate space for list
terminator.
* src/posix-util.c (walk_path): Fix trailing slash detection.
Map public key algos returned by gpg to gpgme values.
+ commit d5fb92cdaed21eea2f1a921e4f11df72635a8462
* src/conversion.c (_gpgme_map_pk_algo): New.
* src/decrypt.c (parse_enc_to): Add arg PROTOCOL and map pubkey algo.
(_gpgme_decrypt_status_handler): Map pubkey algo.
* src/keylist.c (keylist_colon_handler): Map pubkey algo.
* src/sign.c (parse_sig_created): Add arg PROTOCOL and map pubkey
algo.
* src/verify.c (parse_new_sig): Ditto.
(parse_valid_sig): Ditto.
* src/gpgme.h.in (GPGME_PK_ECC): New.
(GPGME_MD_SHA224): New.
* src/gpgme.c (gpgme_pubkey_algo_name): Add GPGME_PK_ECC case.
(gpgme_hash_algo_name): Add GPGME_MD_SHA224.
Add GPGME_ENCRYPT_NO_COMPRESS flag.
+ commit 991cde9e79fec70aad093ded383c5574d30f9388
* src/gpgme.h.in (GPGME_ENCRYPT_NO_COMPRESS): New.
* src/engine-gpg.c (gpg_encrypt, gpg_encrypt_sign): Implement it.
* src/gpgme-tool.c (_cmd_sign_encrypt): Add option --no-compress.
2014-04-16 Werner Koch <wk@gnupg.org>
w32: Fix another memleak on error.
+ commit 62711e5614e44e65a7c7bb7d21493d09d3081271
* src/w32-io.c (create_reader): free CTX.
2014-04-15 Werner Koch <wk@gnupg.org>
w32: Fix memleak in an error code paths.
+ commit 85a07ca7e3dffdefc8ae74beebb59e47a6e6bd1b
* src/w32-io.c (create_writer): Free CTX in cased of bad FD.
* src/w32-util.c (_gpgme_mkstemp): Free TMPNAME in case of a failed
mkstemp.
Fix possible zombie processes.
+ commit 2bb26185e3b9a048033c559517d6ba7d2eb47066
* src/posix-io.c (_gpgme_io_waitpid): Protect waitpid agains EINTR.
(_gpgme_io_dup): Likewise.
(_gpgme_io_connect): Likewise.
2014-04-10 Werner Koch <wk@gnupg.org>
Actually implement flags for gpgme_op_spawn.
+ commit d3bd8fff863f62b6d0e228aea754efbbde861e9a
* src/spawn.c (gpgme_op_spawn_start, gpgme_op_spawn): Pass FLAGS dow
to spawn_start and add FLAGS args along the call path.
* src/engine-spawn.c (engspawn_start): Hack to automagically provide
argv[0].
Add GPGME_PROTOCOL_SPAWN and gpgme_op_spawn.
+ commit 4f2d652e60700e03809307a10015ff9003ac3579
* src/gpgme.h.in (GPGME_PROTOCOL_SPAWN): New.
(GPGME_SPAWN_DETACHED, GPGME_SPAWN_ALLOW_SET_FG): New.
* src/gpgme.c (gpgme_set_protocol): Add new protocol.
(gpgme_get_protocol_name): Ditto.
* src/spawn.c: New.
* src/libgpgme.vers, src/gpgme.def: Add new public functions.
* src/engine-spawn.c: New.
* src/Makefile.am: Add new files.
* src/engine-backend.h (struct engine_ops): Add OPSPAWN.
* src/engine.c (engine_ops): Add _gpgme_engine_ops_spawn.
(gpgme_get_engine_info): Add Spawn to the list of protocols.
(_gpgme_engine_op_spawn): New.
* src/gpgme-tool.c (gt_protocol_from_name): Add new protocol.
(gt_spawn, cmd_spawn): New.
Add gpgme_get_dirinfo.
+ commit 77931a9a1468b0cfbaafd4153867d90764a6d258
* src/dirinfo.c (gpgme_get_dirinfo): New.
* tests/t-engine-info.c (main): Print results from that function.
Make use of internal iospawn flags more flexible.
+ commit 443f6b76a964b77e2e61c03592a83ffa0a6da4b1
* src/priv-io.h (IOSPAWN_FLAG_DETACHED): New. Renumber the others.
* src/w32-io.c (_gpgme_io_spawn): Use DETACHED_PROCESS process only if
IOSPAWN_FLAG_DETACHED is given.
* src/w32-qt-io.cpp (_gpgme_io_spawn): Ditto.
* src/w32-glib-io.c (_gpgme_io_spawn): Ditto.
* src/assuan-support.c (my_spawn): Pass IOSPAWN_FLAG_DETACHED flags.
* src/dirinfo.c (read_gpgconf_dirs): Ditto.
* src/engine-gpg.c (start): Ditto.
* src/engine-gpgconf.c (gpgconf_read, gpgconf_write): Ditto.
* src/version.c (_gpgme_get_program_version): Ditto.
Make sure a spawned process has all standard fds connected.
+ commit 617d3be629229cbebfdc2d26a4e854bc4fe38a68
* src/posix-io.c (_gpgme_io_spawn): dup /dev/null also to unsued
stdout.
2014-03-13 Werner Koch <wk@gnupg.org>
Add configure option --enable-fixed-path.
+ commit 766355b5d4f63261c428531fdbdafb8b67de9369
* configure.ac: Add option --enable-fixed-path.
(FIXED_SEARCH_PATH): New ac_define.
* src/posix-util.c (walk_path): Make use of the option. Remove
current directory from fallback PATH.
2014-03-11 Werner Koch <wk@gnupg.org>
Avoid pointer arithmetic on void pointer.
+ commit dd9c8c56719db093b8daa23aa40b2be71bbd1526
* src/gpgme.c (gpgme_io_writen): Use new var buffer.
Change implementation return type to match the definition.
+ commit 75a6255935f450d56f3637cbb2b6c8161ace57ab
* src/gpgme.c (gpgme_get_sub_protocol): Change return type to
gpgme_protocol_t.
2014-03-05 Daiki Ueno <ueno@gnu.org>
doc: Fix documentation of struct data types.
+ commit 40938feb3f3393b0cdc6ec61ca2e77ff0b82c69a
* gpgme.texi (Key Management): Document is_cardkey and card_number
members of gpgme_subkey_t.
(Decrypt): Remove description of the non-existent wrong_key_usage
member of gpgme_recipient_t.
(Verify): Document pka_address member of gpgme_signature_t.
(Creating a Signature): Add missing member names in
gpgme_new_signature_t.
(Registering I/O Callbacks): Fix reference of gpgme_io_cbs struct.
2014-02-21 Werner Koch <wk@gnupg.org>
Always pass correct name to argv[0]. Ignore GPG_AGENT_INFO for gpg2.
+ commit 651d9e1c6bc1cab248024c3850ef64698247588f
* src/dirinfo.c (WANT_GPG_ONE_MODE): New.
(struct dirinfo): Add field "gpg_one_mode".
(get_gpgconf_item): Set that field and return it if requested.
(_gpgme_in_gpg_one_mode): New.
* src/engine-gpg.c (build_argv): Check GPG_AGENT_INFO only in gpg-1
mode.
* src/dirinfo.c (_gpgme_get_basename): New.
* src/engine-g13.c (g13_new): Take argv[0] from the pgmname.
* src/engine-gpgsm.c (gpgsm_new): Ditto.
* src/engine-gpg.c (build_argv): Ditto. Add arg PGMNAME.
(start): Pass PGMNAME to buildargv.
2014-02-12 Werner Koch <wk@gnupg.org>
Fix type inconsistency between gpgme.h and gpgme.c.
+ commit f916ab753b7d17210cd455666870038949f72851
* src/gpgme.c (gpgme_set_pinentry_mode): Fix type of MODE.
2014-01-10 Werner Koch <wk@gnupg.org>
Use the generic autogen.sh script.
+ commit 1a504aab384947c1a6e949affd14bc696297fc8d
* autogen.rc: New.
* Makefile.am (EXTRA_DIST): Add it.
* autogen.sh: Update from GnuPG.
* configure.ac (AM_SILENT_RULES): New.
2014-01-07 Werner Koch <wk@gnupg.org>
Make gpgconf engine work again - fixes 02ba35c1.
+ commit ab6e718327451e418782990c5a0a4e72588e3f0b
* src/gpgconf.c: Remove ENABLE_GPGCONF and move prototypes to ...
* src/engine-backend.h: ... here.
Make gpgme_new return a proper error if no engines are installed.
+ commit 121efcc5618374a1b4450b1d6a18bb3c35edb1fd
* src/engine.c (gpgme_get_engine_info): Improve error handling.
(_gpgme_engine_info_copy): Ditto.
* src/gpgme.c (gpgme_new): Return error GPG_ERR_NO_ENGINE.
Print the full PATH in the log if gpg was not found.
+ commit d63058b852b83515e7715103c04a684ecf59838a
* src/posix-util.c (walk_path): Keep a copy of PATH.
2014-01-06 Werner Koch <wk@gnupg.org>
Add global flags disable-gpgconf, gpgconf-name, and gpg-name.
+ commit 6564e5e78e8c6e5a120675a5699b5b75248cfbc7
* src/gpgme.c (gpgme_set_global_flag): Add names "disable-gpgconf",
"gpgconf-name", and "gpg-name".
* src/dirinfo.c (_gpgme_dirinfo_disable_gpgconf): New.
(get_gpgconf_item): Minor debug info change.
* src/posix-util.c (default_gpg_name, default_gpgconf_name): Add vars.
(_gpgme_set_default_gpg_name): New.
(_gpgme_set_default_gpgconf_name): New.
(_gpgme_get_gpg_path, _gpgme_get_gpgconf_path): Use new vars.
(walk_path): Add debug output on failure.
* src/w32-util.c (default_gpg_name, default_gpgconf_name): Add vars.
(replace_slashes): New.
(get_basename): New.
(_gpgme_set_default_gpg_name): New.
(_gpgme_set_default_gpgconf_name): New.
(_gpgme_get_gpg_path, _gpgme_get_gpgconf_path): Use new vars.
* tests/t-engine-info.c (main): Add --verbose and --set-global-flag
options.
2013-12-27 Werner Koch <wk@gnupg.org>
Locate engine names only at runtime and prefer GnuPG-2.
+ commit 02ba35c1b6a2cbb3361b2f2ad507c53564b2be0b
* configure.ac (NEED_GPG_VERSION, NEED_GPGSM_VERSION)
(NEED_G13_VERSION, NEED_GPGCONF_VERSION): Remove vars and all related
checks. Do not check for any engine version.
(HAVE_ASSUAN): Remove AM conditional.
* src/Makefile.am: Remove separate component vars and always build all
engines but uiserver.
* src/dirinfo.c (WANT_GPGCONF_NAME): New.
(struct dirinfo): Add field gpgconf_name.
(_gpgme_get_default_gpgconf_name): Use WANT_GPGCONF_NAME.
(get_gpgconf_item): Set gpgconf name and adjust for _gpgme_get_*_path
now returning a malloced string.
* src/engine.c (engine_ops): Always init all engines except for
uiserver.
* src/posix-util.c (_gpgme_get_gpgsm_path, _gpgme_get_g13_path):
Remove unused functions.
(walk_path): New.
(_gpgme_get_gpg_path, _gpgme_get_gpgconf_path ): Re-implement using
walk_path.
* src/w32-util.c (_gpgme_get_gpgsm_path, _gpgme_get_g13_path): Remove
unused functions.
(_gpgme_get_gpg_path, _gpgme_get_gpgconf_path): Return a malloced
string.
* src/engine-g13.c (g13_get_req_version): Use a hardwired string with
the required version. This info belongs into this file.
* src/engine-gpg.c (gpg_get_req_version): Ditto.
* src/engine-gpgconf.c (gpgconf_get_req_version): Ditto.
* src/engine-gpgsm.c (gpgsm_get_req_version): Ditto.
* tests/t-engine-info.c: Replace now useless test by an info output.
* tests/gpg/Makefile.am (GPG, GPG_AGENT): Hardwire gpg and gpg-agent.
* tests/gpgsm/Makefile.am (GPGSM): Hardwire gpgsm.
2013-08-19 Werner Koch <wk@gnupg.org>
Document API change for GPGME_EVENT_DONE from 2009.
+ commit b0aaa3f9aef36634b5c391812362f016114f02ba
* doc/gpgme.texi (I/O Callback Interface): Fix description for the
event arg.
Fix possible segv in the gpgme_op_card_edit.
+ commit 372bd439834c69d502668007c8c683233d676bd5
* src/edit.c (gpgme_op_edit_start, gpgme_op_card_edit_start): Do not
deref a NULL KEY in TRACE_BEG.
tests: Fix NULL ptr deref in gpgsm/t-verify.
+ commit eae9c32bd9c80ca4a4ecf794808211808f2ebbdd
* tests/gpgsm/t-verify.c (check_result): Do not dereference a sig or
sig->fpr if NULL.
2013-08-12 Werner Koch <wk@gnupg.org>
Release 1.4.3.
+ commit d788c35e19df9eade8eb0b880ca1dc47ae7928ad
* configure.ac: Change LT version to C22/A11/R0.
Make test suite workable with GnuPG 2.1.
+ commit 3ca7e96e384d5872c71ceb3b2e2a05b0c1b7e1a0
* tests/gpg/start-stop-agent: New.
* tests/gpg/initial.test: New.
* tests/gpg/final.test: New.
* tests/gpg/Makefile.am (c_tests): New.
(TESTS): Move all to c_tests. Add initial.test, final.test, and
c_tests.
(TESTS_ENVIRONMENT): Add C_ALL=C
(private_keys): New.
(EXTRA_DIST): Add new files.
(./private-keys-v1.d/gpg-sample.stamp): Copy private keys.
(all-local): Depend on gpg-sample.stamp.
* tests/gpg/13CBE3758AFE42B5E5E2AE4CED27AFA455E3F87F: New.
* tests/gpg/13CD0F3BDF24BE53FE192D62F18737256FF6E4FD: New.
* tests/gpg/76F7E2B35832976B50A27A282D9B87E44577EB66: New.
* tests/gpg/7A030357C0F253A5BBCD282FFC4E521B37558F5C: New.
* tests/gpg/A0747D5F9425E6664F4FFBEED20FBCA79FDED2BD: New.
Improve detection of default gpg by configure.
+ commit 069ac580373923f5635b7172ecff79eb189f6944
* configure.ac: Move test for gpgconf before test for gpg.
(GPG, GPGSM, G13): Use gpgconf instead of AC_PATH_PROG if possible.
2013-08-09 Werner Koch <wk@gnupg.org>
Add function gpgme_data_identify.
+ commit 8579091c4f6a36e6bb06fcfbd147a776166fd3ea
* src/gpgme.h.in (gpgme_data_type_t): New.
(gpgme_data_identify): New prototype.
* src/data-identify.c: New.
* src/parsetlv.c, src/parsetlv.h: New. Take from gpa.
* src/libgpgme.vers, src/gpgme.def: Add gpgme_data_identify.
* src/gpgme-tool.c (status): Add STATUS_IDENTIFY_RESULT.
(gt_identify): New.
(cmd_identify): New.
(hlp_passwd): Move close to cmd_passwd.
2013-08-02 Werner Koch <wk@gnupg.org>
Prefer GnuPG-2 engines over GnuPG-1.
+ commit a4c80126ae4754c8478c69a8a24a6ffd975485fc
* src/util.h: Move some prototypes to ...
* src/sys-util.h: New.
* src/Makefile.am (main_sources): Add sys-util.h.
* configure.ac (AH_VERBATIM): Add DIRSEP_C and DIRSEP_S.
* src/dirinfo.c: Include sys-util.h.
(WANT_GPG_NAME, WANT_GPGSM_NAME, WANT_G13_NAME)
(WANT_UISRV_SOCKET): New.
(dirinfo): Add corresponding fields.
(parse_output): Add arg COMPONENTS and set new fields.
(read_gpgconf_dirs): Add arg components and act upon it.
(get_gpgconf_item): Call read_gpgconf_dirs two times. Add debug
output.
(_gpgme_get_default_gpg_name): New.
(_gpgme_get_default_gpgsm_name): New.
(_gpgme_get_default_g13_name): New.
(_gpgme_get_default_gpgconf_name): New.
(_gpgme_get_default_uisrv_socket): New.
* src/engine-gpg.c, src/engine-g13.c, src/engine-gpgconf.c
* src/engine-gpgsm.c, src/engine-uiserver.c: Change to use
_gpgme_get_default_ instead of those from sys-util.h.
* src/posix-util.c (_gpgme_get_gpg_path): Include sys-util.h.
(_gpgme_get_uiserver_socket_path): Remove.
* src/w32-util.c (_gpgme_get_gpg_path): Include sys-util.h.
(_gpgme_get_uiserver_socket_path): Remove.
w32: Try to locate gpg in the gpgme installation dir.
+ commit 3881ea4e83d1533ef497b7332398fc1850e29205
* src/w32-util.c (my_hmodule): New.
(wchar_to_utf8): New.
(DllMain): New.
(_gpgme_get_inst_dir): New.
(find_program_in_dir): New.
(find_program_in_inst_dir): Add arg INST_DIR.
(_gpgme_get_gpg_path): Get inst_dir before acquiring the lock.
(_gpgme_get_gpgconf_path): Ditto.
(_gpgme_get_g13_path): Ditto.
(_gpgme_get_w32spawn_path): Ditto.
2013-07-31 Werner Koch <wk@gnupg.org>
doc: Add --binary option for the OUTPUT command of an uiserver.
+ commit 393a9471f2f3ac0a5b14f3534a5bfc7ffe948567
2013-06-18 Werner Koch <wk@gnupg.org>
Add function gpgme_signers_count.
+ commit f2eeccbdfaf855a81abb92abe5ab4c702712bac7
* src/signers.c (gpgme_signers_count): New.
* src/libgpgme.vers, src/gpgme.def: Add as external symbol.
* src/gpgme.h.in: Add prototype.
2013-05-28 Werner Koch <wk@gnupg.org>
Release 1.4.2.
+ commit 009e26a989f8a251563303f155c51fe012af52a4
* configure.ac: Set LT version to C21/A10/R0.
Add convenience macro GPGME_PROTOCOL_OPENPGP.
+ commit 2e8feb6016dede400053f76fc3a418e1dd567bef
* src/gpgme.h.in (GPGME_PROTOCOL_OPENPGP): New.
2013-05-23 Werner Koch <wk@gnupg.org>
w32: Fix installing of .def file.
+ commit c29dad2315406bed75b9547103650bef642e6aa7
* src/Makefile.am (install-def-file): Create libdir first.
Fix libtool 2.4.2 to correctly detect .def files.
+ commit d739d4d8cf9c873b0f3bb7836aaf3d0ba31a7b7f
* build-aux/ltmain.sh (sed_uncomment_deffile): New.
(orig_export_symbols): Uncomment def file before testing for EXPORTS.
* m4/libtool.m4: Do the same for the generated code.
2013-05-22 Werner Koch <wk@gnupg.org>
Support --no-encrypt-to also with gpgme_op_encrypt_sign.
+ commit d4371ed30da2e8b3d9f440613af299a952bde2b1
* src/engine-gpg.c (gpg_encrypt_sign): Support the
GPGME_ENCRYPT_NO_ENCRYPT_TO flag.
2013-05-22 Werner Koch <wk@gnupg.org>
Kyle L. Huff <g10bts@curetheitch.com>
Allow symmetric encryption with gpgme_op_encrypt_sign.
+ commit 567e6481d767af60390d649897b897a8b0e7e9a5
* src/encrypt-sign.c (encrypt_sym_status_handler): New.
(encrypt_sign_start): Handle recp == NULL case.
* src/engine-gpg.c (gpg_encrypt_sign): Implement symmetric encryption.
* tests/gpg/t-encrypt-sign.c (main): Add a test case for this.
2013-05-22 Werner Koch <wk@gnupg.org>
gpgme-tool: Allow for symmetric encryption.
+ commit 0c1de7abd57b677998792e6cd5df5ddfb6e451b7
* src/gpgme-tool.c (gt_sign_encrypt): Pass NULL for recp if no
recipients are given.
tests: Print auditlog in plain text format.
+ commit 18254f88f82da7542a986dca60917fb48d5bccd3
* tests/gpgsm/t-verify.c (show_auditlog): Use plain text format.
2013-05-18 Werner Koch <wk@gnupg.org>
Improve C++ compatibility of previous patch.
+ commit e99356306d7bda61802530ebeb07d9ba73c4dec0
* src/gpgme.h.in: Move gpgme_sssize_t and gpgme_off_t typedefs into
the extern "C" scope.
2013-05-16 Werner Koch <wk@gnupg.org>
Make definition of off_t robust against misbehaving w32 toolchains.
+ commit 6d0d8e7ba0bb989c251545fa8af35b97d1a703ba
* configure.ac (NEED__FILE_OFFSET_BITS): Change to define gpgme_off_t
and gpgme_ssize_t.
(API__OFF_T, API__SSIZE_T): New ac_subst.
* src/gpgme.h.in: Replace all ssize_t and off_t by ac_subst macros.
* src/assuan-support.c, src/ath-pthread.c, src/ath.c, src/ath.h
* src/data-compat.c, src/data-fd.c, src/data-mem.c, src/data-stream.c
* src/data-user.c, src/data.c, src/data.h, src/engine-gpgsm.c
* src/engine-uiserver.c, src/gpgme-tool.c, src/gpgme.c: Replace off_t
by gpgme_off_t and sszie_t by gpgme_ssize_t.
* src/ath-pthread.c, src/ath.h: Include gpgme.h.
2013-05-11 Werner Koch <wk@gnupg.org>
w32: Change the way the I/O threads are cleaned up.
+ commit 9e7df9aa6d81f0abbabb03a2346d80eb5d375f81
* src/w32-io.c (reader_context_s, create_reader)
(writer_context_s, create_writer): Rename STOPPED to CLOSE_EV.
(reader, writer): Remove setting of STOPPED. Wait for CLOSE_EV and
then release the context.
(destroy_reader, destroy_writer): Do not wait but set the CLOSE_EV.
(kill_reader, kill_writer): Remove.
(_gpgme_io_close): Add code from kill_reader and kill_writer.
2013-05-08 Werner Koch <wk@gnupg.org>
Fix hang in socket closing.
+ commit 9f330be8210d2498fe93d4166b6f6c02fca76475
* src/w32-io.c (destroy_reader): Call shutdown.
(reader): Do not print an error in the shutdown case.
Improve debug output of the I/O reader and writer.
+ commit 2118f497010a9a41c29d062a7605ff2e136f8f4e
* src/w32-io.c (reader, writer): Also print file_sock.
2013-05-06 Werner Koch <wk@gnupg.org>
Simplify a debug code function.
+ commit a7e5f1096f02af7bfb678b0bea8da6ccfc28cc79
* src/debug.c (_gpgme_debug): Remove static space string.
2013-05-01 Werner Koch <wk@gnupg.org>
Release 1.4.1.
+ commit 5075c0da7c464af2a45cd36db134ed7e88f155af
* configure.ac: Bump LT version to C20/A9/R1.
Disable fd-passing for Apple.
+ commit ef5b4ae37d13142e89a051908dc080cda3d24baa
* configure.ac: Disable fd-passing by default for Apple.
2013-04-30 Werner Koch <wk@gnupg.org>
Allow reading of long gpgconf output lines.
+ commit f623a6b94c527795d0b6f7e66a3966e5d9e1c454
* src/engine-gpgconf.c (gpgconf_read): Rewrite to allow for line
lengths up to 64k.
2013-04-29 Werner Koch <wk@gnupg.org>
Fix for i686-w64-mingw32.
+ commit 867b950b9306904a0ff522d0ef4a43789393cfc4
* configure.ac (NEED__FILE_OFFSET_BITS): Do not define under Windows.
2013-02-26 Werner Koch <wk@gnupg.org>
Release 1.4.0.
+ commit ef5cd38123dfbef7843f374ee697b0b5e8730c46
* configure.ac: Bump LT version to C20/A9/R0.
Enable FD passing and thus building of the UI-server.
+ commit 5090f6f246bfad2eb80f3cc222963f73996d8028
* configure.ac: Make --enable-fd-passing the default.
* src/engine-uiserver.c (_gpgme_engine_ops_uiserver): Syntax fix.
w32: Hacks for building with 32 bit mingw64.
+ commit cdae524b282ef0ea67c3880b3e0f852c84c351ce
* configure.ac (INSERT__TYPEDEFS_FOR_GPGME_H): Add hacks for 32 bit
mingw64.
* src/util.h [W32]: Include winsock2.h before windows to make mingw64
happy.
* src/w32-util.c (_WIN32_IE): Need to use 5.1 for mingw64.
Improve missing libgpg-error reporting in configure.
+ commit 787b5f14b933e5cee2624f79a23a60947f8134c8
* configure.ac (NEED_GPG_ERROR_VERSION): New. Improve reporting for
missing libgpg-error.
Change the various version numbers to the new scheme.
+ commit d8b46c919f45666af0d541e00dcedf57e6c4b66f
* configure.ac: Rename my_foo variables to mym4_foo variables to make
clear that they are processed by m4.
(VERSION_NUMBER): New ac_subst.
(AH_BOTTOM): Add CRIGHTBLURB macro.
(BUILD_REVISION, BUILD_FILEVERSION, BUILD_TIMESTAMP): Change them to
work similar to libgpg-error et al.
* src/versioninfo.rc.in: Remove use of BUILD_NUMBER and get it in line
with gpg-error et al.
* src/version.c (cright_blurb): New.
(gpgme_check_version_internal): Add magic to display the above
information.
* tests/t-version.c (main): Add option --verbose.
Update GnuPG related m4 files.
+ commit 863c0f2a3eaf2a5d46c5518e5ac3486cc1a49bd3
* m4/gpg-error.m4: Update from libgpg-error.
* m4/libassuan.m4: Update from libassuan.
Update helper scripts.
+ commit fdcd5736e610cd64e47da73dcafe8bc4a6a67666
* configure.ac: Use AC_CONFIG_AUX_DIR. Remove args from
AM_INIT_AUTOMAKE. Replace AM_CONFIG_HEADER by AC_CONFIG_HEADER.
* compile, config.guess, config.sub, depcomp, install-sh, ltmain.sh
* mkinstalldirs, texinfo.texi: Move to build-aux/ and update from
gnulib (c042abf).
* build-aux/mdate-sh, build-aux/missing: Install via automake -a -c.
Update autogen.sh for changed config dir.
* autogen.sh: Adjust for scripts dir change. Update W32 toolprefix
list.
2013-02-25 Werner Koch <wk@gnupg.org>
Remove included gitlog-to-changelog.
+ commit 967e043ac42330ee692f23d05ce3a0dd457f2119
* build-aux/gitlog-to-changelog: Remove.
* configure.ac (GITLOG_TO_CHANGELOG): Default to just
gitlog-to-changelog.
2013-02-12 Werner Koch <wk@gnupg.org>
Add macro GPGME_VERSION_NUMBER.
+ commit f48f75b1e812d33b76e439412efffa8277ab9abe
* src/gpgme.h.in (GPGME_VERSION_NUMBER): New.
* configure.ac (my_version_major, my_version_minor)
(my_version_micro): New m4 macros.
(my_version): Build from new m4 macros.
(VERSION_NUMBER): New ac_subst.
Add public function gpgme_get_pinentry_mode.
+ commit 4f381554411ef019d79492f1751543f145604bcf
* src/gpgme.c (gpgme_get_pinentry_mode): New.
2013-02-07 Werner Koch <wk@gnupg.org>
gpgme_tool: Support GPG's new pinentry-mode.
+ commit 02a2cf0ccb4d01700adf6d18316d7705d519a048
* src/gpgme-tool.c (log_error): Do not always print the error source.
(gt_set_pinentry_mode): New.
(server_passphrase_cb): New.
(cmd_pinentry_mode): New.
(register_commands): Add cmd_pinentry_mode.
(options): Add option --gpg-binary.
(struct args): Add field gpg-binary.
(parse_options, main): Implement that option.
Add public function gpgme_set_pinentry_mode.
+ commit 61a0d92b679f248505f1bf16386bc41a5bf2ba1d
* src/gpgme.c (gpgme_set_pinentry_mode): New.
* src/gpgme.h.in (gpgme_pinentry_t): New.
(gpgme_set_pinentry_mode): New.
* src/context.h (struct gpgme_context): Add field pinentry_mode.
* src/engine-backend.h (struct engine_ops): Add field
set_pinentry_mode.
* src/engine-gpg.c (struct engine_gpg): Add field pinentry_mode.
(build_argv): Implement pinentry_mode.
(gpg_set_pinentry_mode): New.
(_gpgme_engine_ops_gpg): Register gpg_set_pinentry_mode.
Add public function gpgme_io_writen.
+ commit 29eced50687dd8a39dafe704102ae09ea8e8533a
* src/gpgme.c (gpgme_io_read): New.
2012-11-16 Werner Koch <wk@gnupg.org>
Improve parsing of the GIT revision number.
+ commit 322552a88db47896881e55c00ca301137cd160c6
* configure.ac (git_revision): Use git rev-parse.
Fix non-portable use of chmod in autogen.sh.
+ commit cd6de92f42cb6e5b85bc376d5544496cb4d6a88a
* autogen.sh: Remove option -c from chmod.
2012-11-15 Werner Koch <wk@gnupg.org>
Make _gpgme_encode_percent_string work for memory buffers.
+ commit 1a17acd8e9b7c0ef924f98bfb1502fe12e83c363
* src/conversion.c (D_gpgme_encode_percent_string): Remove stray
semicolon. Reported by Xi Wang.
2012-10-24 Werner Koch <wk@gnupg.org>
Make local variables configure hack more robust.
+ commit c97d067f27899d890a99036fcbed9263f4f68875
* configure.ac (emacs_local_vars_begin): Use extra m4 quoting so that
newer Emscasen won't take it up as Local Variables for this file.
Fix ttyname problem on Android.
+ commit 12a0c93433a0b1d7e8019fc35a63476db39327fa
* configure.ac: Define macro and conditional HAVE_ANDROID_SYSTEM.
* m4/gnupg-ttyname.m4: Force use of replacement on Android.
* src/ttyname_r.c: Ditto.
tests: Adhere to the docs and call gpgme_check_version.
+ commit cc59b75b21516198b39a56950afbcec140d8ba48
* tests/t-engine-info.c: Call gpgme_check_version.
2012-10-19 Werner Koch <wk@gnupg.org>
Trace the use of GPG_ERR_INV_ENGINE.
+ commit bd24feaa86f8154e550107990392ac9ac05e60d4
* src/debug.h: Include "gpgme.h"
(_gpgme_trace_gpgme_error): New.
(trace_gpg_error): New macro. Use it in all files where we return
GPG_ERR_INV_ENGINE; also "include debug.h" as needed.
Avoid warning about initialized but not used variable.
+ commit 14a8fd4eec126cad282a85c5aa336a6b55229b52
* src/engine-gpgsm.c (gpgsm_set_fd): Do not set DIR if not needed.
2012-10-11 Werner Koch <wk@gnupg.org>
gpgme-tool: Use membuf functions to build up strings.
+ commit e11e7fc5586613525035c3358e15ae24accb96ea
* src/gpgme-tool.c (clear_membuf, init_membuf, put_membuf)
(put_membuf_str, get_membuf, peek_membuf): Add membuf functions.
Take from GnuPG master's common/membuf.[ch] and patch for our use.
(result_xml_escape): Rewrite using new functions.
gpgme-tool: Change license from LPGLv2+ to GPLv3+
+ commit aa30b47aa010bf46876f2335e288f8bd8718e396
* src/gpgme-tool.c: Change license notice.
2012-10-11 W. Trevor King <wking@tremily.us>
gpgme-tool: escape special characters in output XML data (<, >, and &).
+ commit 3f1329e1c9b99b1632cc4c4eec2e4399676fd93d
src/gpgme-tool.c (result_xml_escape_replacement, result_xml_escape):
New.
(result_xml_tag_data): Use result_xml_escape() to escape data.
(result_add_error): Use unescaped < and >.
gpgme-tool: Fix chain_id -> chain-id in KEYLIST XML.
+ commit c28ebca9f2e21344d68e9fdcec60553f225c2e54
src/gpgme-tool.c (cmd_keylist): Use <chain-id> instead of <chain_id>.
2012-09-28 W. Trevor King <wking@tremily.us>
gpgme-tool: Return more detailed XML from KEYLIST.
+ commit 3d69b51f7f083193db28f364da4590c33b5e44e6
src/gpgme-tool.c (cmd_keylist): Convert output from a list of
to more detailed XML.
(xml_preamble1, xml_preamble2, xml_end): Make global.
(result_add_protocol, result_add_validity): New functions for
generating XML from GPGME types.
(result_add_string): Treat NULL strings as "".
(result_xml_tag_data): Make 'data' a 'const char' so we can use the
value returned by gpgme_get_protocol_name directly.
gpgme-tool: Initialize input_fd and output_fd.
+ commit dda3702a9024a08da7bb949e15b63a47d23d59f5
* src/gpgme-tool.c (gpgme_server): Initialize input_fd and output_fd.
2012-09-26 Werner Koch <wk@gnupg.org>
gpgme-tool: Fix handling of file descriptors.
+ commit 193eb62538b9413e0dfbd04c075f871d5aa9130b
* src/gpgme-tool.c (server_reset_fds): Use close/CloseHandle instead
of the assuan close functions.
(_cmd_decrypt_verify, _cmd_sign_encrypt, cmd_verify, cmd_import)
(cmd_export, cmd_genkey, cmd_getauditlog): Use SERVER object instead
of assuan_get_*_fd functions.
2012-09-25 Werner Koch <wk@gnupg.org>
Document contribution rules.
+ commit db33945ab3b8c173a3fc2dd1a0d22d7fc15d8730
* doc/HACKING (License policy): New.
* doc/DCO: New.
* AUTHORS: Change maintainer address.
Add gpgme_set_global_flag to help debugging.
+ commit c62b79a1d6e576d94e08cb81c2f5dbcb42ecf8cf
* src/gpgme.c (gpgme_set_global_flag): New.
* src/gpgme.h.in (gpgme_set_global_flag): New.
* src/gpgme.def, src/libgpgme.vers: Add new public function.
* src/debug.c (envvar_override): New.:
(_gpgme_debug_set_debug_envvar): New.
(debug_init): Take ENVVAR_OVERRIDE in account.
2012-07-28 Marcus Brinkmann <marcus.brinkmann@ruhr-uni-bochum.de>
Add two recent contributors.
+ commit 83e74202cd7c4c975d149c49e2507fdb0e60ef32
Fix sign error in position calculation for mem_seek.
+ commit 8384ccbd1a51447dccbd608fc5df3c24cb8999b1
* data-mem.c (mem_seek): Fix sign error in position calculation.
Allow null context on gpgme_set_locale.
+ commit 434735f71e6969248651ac01c6bd6f6789a6305d
* gpgme.c (gpgme_set_locale): Allow CTX to be a null pointer.
2012-07-13 Werner Koch <wk@gnupg.org>
Do not include the removed file status-table.h.
+ commit e7aeaebb01395b170c91f290bf3ff5021023420f
* src/engine-uiserver.c: Remove status-table.h which is not anymore
built. Fixes bug#1412.
Make handling of new conf values more robust (bug#1413).
+ commit 9f081da7356288a96e8ea4d81a74ff706c00b0cd
* src/engine-gpgconf.c (arg_to_data): Allow for NULL as value.string.
2012-05-02 Werner Koch <wk@gnupg.org>
Release 1.3.2.
+ commit 9c8608f702ec0f44ae55cd7f33bd8df0a2d48508
* configure.ac: Bump LT version to C19/A8/R1.
* configure.ac (GITLOG_TO_CHANGELOG): Define.
* Makefile.am (gen-ChangeLog): Use it.
Remove unused pth stuff from gpgme-config.
+ commit 295dd3f238fa656493d34e8a718958d62226b56c
* src/gpgme-config.in: Remove unused pth stuff.
Update signature summary for the case of missing X.509 keys.
+ commit d6402b888fd00b883bbfc00c91a2aa9706e4377e
* src/verify.c (gpgme_op_verify_result): Update summary field.
2012-04-30 Werner Koch <wk@gnupg.org>
Fix timestamp parsing for y2038 hack.
+ commit 1a21574b48ee91eedbf95251ee600648b377d1e7
* src/conversion.c (_gpgme_parse_timestamp): Set ENDP before year 2038
check.
2012-04-20 W. Trevor King <wking@drexel.edu>
.gitignore: flesh out rules and add subdirectory-.gitignores.
+ commit 4cb408d33efe80e7d102049dea244d22907d8395
2012-04-13 W. Trevor King <wking@drexel.edu>
status-table.c: include string.h for strcmp.
+ commit 62bbe58280737d73badbe518f140e40480205176
* status-table.c: include string.h to avoid `warning: implicit
declaration of function 'strcmp'`.
2012-04-03 W. Trevor King <wking@drexel.edu>
gpgme-tool: add help messages for a number of commands.
+ commit c318e69d8fa5f9e92d4aac3dd44fae5adcaade72
* src/gpgme-tool.c (hlp_engine, hlp_sub_protocol, hlp_armor, hlp_textmode,
hlp_include_certs, hlp_keylist_mode, hlp_input, hlp_output, hlp_message,
hlp_recipient, hlp_signer, hlp_signers_clear, hlp_decrypt, hlp_decrypt_verify,
hlp_encrypt, hlp_sign_encrypt, hlp_sign, hlp_verify, hlp_import): New strings.
(hlp_protocol): Fix typo.
(register_commands): Add documentation strings.
(doc): Mention Assuan.
uiserver.texi: fix decryption -> encryption typo in PREP_ENCRYPT discussion.
+ commit bb62104adf78e8416b3c56b8b2621edd723b56cd
* doc/uiserver.texi (PREP_ENCRYPT): Fix documentation.
Update Werner Koch's distribution signing key in the README.
+ commit 6ec9e21dd1ea2f8509700bce018aef6ad7e9a927
* README: Update signing key.
2012-03-12 Marcus Brinkmann <marcus.brinkmann@ruhr-uni-bochum.de>
Do not rely on glibc name of syscall.
+ commit ff0a640a18e7b7457e6c2edfdc8307bf44628b60
* src/ath.c (ath_self): Use __NR_gettid, not SYS_gettid.
Update config.guess and config.sub to latest version.
+ commit ced1ad01aed32d1e4c5000f3b901db018ef7bf1e
* config.guess, config.sub: Update to latest version.
2012-02-14 Marcus Brinkmann <marcus.brinkmann@ruhr-uni-bochum.de>
Rework status table to be less dynamically generated.
+ commit 885243e05467e79e2375b3febe7904053ab45dfc
* src/Makefile.am (EXTRA_DIST): Remove mkstatus.
(BUILT_SOURCE, MOSTLYCLEANFILES): Remove.
(main_sources): Remove status-table.h, extra-stati.h.
Add status-table.c.
(status-table.h): Remove rules for built source.
* src/decrypt.c: Don't include extra-stati.h.
* src/engine-gpg.c: Don't include status-table.h.
(status_cmp): Remove function.
(read_status): Use _gpgme_parse_status.
* src/engine-gpgsm.c: Don't include status-table.h.
(status_cmp, parse_status): Remove function.
(gpgsm_assuan_simple_command, status_handler): Use _gpgme_parse_status.
* src/engine-uiserver.c: Don't include status-table.h.
(status_cmp, parse_status): Remove function.
(uiserver_assuan_simple_command, status_handler): Use
_gpgme_parse_status.
* src/gpgme.h.in (gpgme_status_code_t): Add
GPGME_STATUS_DECRYPTION_INFO.
* src/util.h (_gpgme_status_init,_gpgme_parse_status): New declaration.
* src/status-table.c: New file.
* src/extra-stati.h, src/mkstatus: Files removed.
* version.c (do_subsystem_inits): Call _gpgme_status_init.
2012-02-08 Marcus Brinkmann <mb@g10code.com>
Use gpgme interface for error handling to avoid linking with gpg-error.
+ commit dae3073aaa8b7feb1c844fdaf711f79141b9cc65
* tests/t-data.c, tests/run-export.c, tests/run-keylist.c,
tests/run-support.h, tests/run-verify.c, tests/gpg/t-decrypt-verify.c,
tests/gpg/t-edit.c, tests/gpg/t-eventloop.c, tests/gpg/t-keylist-sig.c,
tests/gpg/t-keylist.c, tests/gpg/t-support.h, tests/gpg/t-trustlist.c,
tests/gpg/t-verify.c, tests/gpg/t-wait.c, tests/gpgsm/cms-decrypt.c,
tests/gpgsm/cms-keylist.c, tests/gpgsm/t-keylist.c,
tests/gpgsm/t-support.h, tests/gpgsm/t-verify.c,
tests/opassuan/t-command.c: Use gpgme interface for gpg-error functions.
Link the thread test to pthread.
+ commit 0052a72f89c6830818e354358fdd84702d3494c8
* tests/gpg/Makefile.am (t_thread1_LDADD): Add -lpthread.
Link gpgme-tool directly to libassuan, as it uses its interface.
+ commit 3f03897cbd223d4a75eb62c3b7bdfeb800661641
* src/Makefile.am (gpgme_tool_LDADD): Add @LIBASSUAN_LIBS@.
2012-01-19 Werner Koch <wk@gnupg.org>
Support the mingw-w64 toolchain.
+ commit 24a10a4af948ebb1c767b69a92fa5bbe933a417c
* autogen.sh (build-w32): Add i686-w64-mingw32 to the toolprefix.
Fix Solaris problems with ttyname_r.
+ commit 2f304957f5122a5d9da643dc9951ee67ece06eaf
* m4/gnupg-ttyname.m4: New. Based on ttyname_r from gnulib.
* src/ttyname_r.c (_gpgme_ttyname_r): Rename from ttyname_r.
Implement hacks required for Solaris and possible other non-fully
Posix systems.
* src/util.h: Include unistd.h. Redefine ttyname_r depending on
REPLACE_TTYNAME_R and put it into the gpgme name space.
Try to make configure.ac a bit smaller.
+ commit c96778297f5477448a676fcf0c61044bdbccc86d
* configure.ac: Move header checks.
For W32 use a build number instead of abbreviated commit id.
+ commit 574b087e84f5652cf9d8eba8aa16b8d6bb988035
We would need to use a shortened commit id so that it fits into an 16
bit Windows variable. Further it is a random number and not something
increasing. Thus a build number made up from the day of the year and
the hour is much more useful to describe a build number for a specific
revision.
* configure.ac [W32]: Replace BUILD_REVISION by BUILD_NUMBER.
* src/versioninfo.rc.in: Ditto.
Adjust configure.ac for modern autoconf.
+ commit a0149630ce6d3e17a7475e20e8b2e31ed5ba57fd
* configure.ac: Minor cleanups.
Update to libtool 2.4.2.
+ commit 4cfddadcd0a569f0b204dccea3c975ce0bdfb232
* ltmain.sh, m4/libtool.m4, m4/ltoptions.m4, m4/ltversion.m4,
* m4/lt~obsolete.m4: Update.
Add ttyname_r check macro from gnulib.
+ commit 3ef528b63679df912551d5d21fc36e465cf50c40
* m4/gnupg-ttyname.m4: New. Taken from current gnulib.
2011-12-02 Werner Koch <wk@gnupg.org>
Generate the ChangeLog from commit logs.
+ commit a4c4ee1aaea4359432bdf60dd572f549ef8dee83
* build-aux/gitlog-to-changelog: New script. Taken from gnulib.
* build-aux/git-log-fix: New file.
* build-aux/git-log-footer: New file.
* build-aux/git-hook/commit-msg: New script.
* doc/HACKING: New file.
* ChangeLog: New file.
* Makefile.am (EXTRA_DIST): Add new files.
(gen-ChangeLog): New.
(dist-hook): Run gen-ChangeLog.
* autogen.sh: Install commit-msg hook for git.
Rename all ChangeLog files to ChangeLog-2011.
2011-12-02 Werner Koch <wk@gnupg.org>
NB: Changes done before December 1st, 2011 are described in
per directory files named ChangeLog-2011. See doc/HACKING for
details.
-----
Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012, 2013 g10 Code GmbH
Copying and distribution of this file and/or the original GIT
commit log messages, with or without modification, are
permitted provided the copyright notice and this notice are
preserved.
|