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
|
TODO
* sync with experimental version
20130416
* bug fix in libcfile.m4 for building on MingW and Cygwin
* fix in libsmdev for MinGW build
20130402
* changes to zlib.m4 for adler32 detection
* moved README.mingw and README.static to wiki
20130331
* worked on libcdata integration
* updated msvscpp files
* updated codegear files
* sync with experimental version
20130330
* updated dependencies
* updates for libsmdev
* added error tolerance for Logicube image with missing checksum in data section
* code clean up
* worked on libcdata integration
20130302
* updated types.h
* fixed maximum number of segments
20130205
* changes and fixes in debug output
20130128
* worked on sync with experimental version
* docstring changes in pyewf
* fix for corruption scenario
20130126
* fixes in pyewf examples
20130120
* updated msvscpp files
* updated codegear files
* updated pyewf
* worked on sync with experimental version
* replace libmfcache by new libfcache
20130119
* updated configure files
* updated dpkg files
* updated rpm spec file
* updated pyewf - fixes multiple issues
* updated dependencies
* worked on sync with experimental version
* added pyewf/setup.py with thanks to Michael Cohen
20130105
* bug fix for 31th day of the month issue
20121209
* removed memwatch and gettext
20120819
* bug fix for not writing SHA-1 hash
20120603
* bug fix for MinGW in liberror
* updates for zlib-1.2.7
20120504
* bug fix for setting media size of L01 file
20120421
* small changes to dpkg files
20120416
* added fuse destroy function to ewfmount
* bug fix in libewf_utf8_string_day_of_month_copy_to_time_elements
* changes to debug output
20120414
* ewfverify: fixed printing the same segment filename multiple times for CRC errors
* worked on pyewf
* bug fix in libewf_utf16_string_month_copy_from_time_elements
* updated libuna: fix in codepage 932
20120304
* small changes to debug error output
* small changes for error tolerability
* updated libfvalue
20120225
* promoted to stable
20120213
* small changes to ewftools
* pyewf: added -avoid-version to Makefile.am
* updated macosx package maker files
20120212
* update for zlib-1.2.6
* added API functions for file entry data offset, data size and
duplicate data offset
* added file entry flags and media data value functions to ewf.net
* updated libnotify, libodraw, libfvalue, libsmraw
20120209
* small changes
20120208
* added dpkg files
20120122
* bug fix in write finalize
20120118
* updated gettext files
* updated libbfio
* preparations for beta testing
20120111
* updated spec file
20120102
* 2012 update
20111231
* updated libhmac, libsmraw, libsmdev
20111228
* updated libcstring, libuna, libbfio
* updated msvscpp, builder5 and codegear files
20111226
* updated libbfio
20111224
* updated libsystem, libuna, libbfio, libhmac, libfvalue, libodraw
20111221
* small fixes in ewftools
20111208
* worked on dealing with missing segment files
20111207
* worked on dealing with missing segment files
20111205
* worked on ewfrecover
20111204
* updated msvscpp files
* updated builder5 files
* updated codegear files
20111203
* worked on ewfrecover
* code clean in ewftools
* updated libcstring, libsystem
* added libmfcache
20111121
* fixed bug introduced by error tollerance changes
20111120
* updated libfvalue, libmfdata
* worked on error tollerance
20111117
* updated libmfdata
20111115
* code clean up
* updated libmfdata
20111114
* code clean up
* updated array type, list type, tree type
* updated libcstring, libfvalue, libhmac
20111105
* worked on libewf_file_get_file_entry_by_utf8_path and
libewf_file_get_file_entry_by_utf16_path
* changes to ewfmount to deal with file names containing
the path separator character /
20111103
* worked on libewf_file_get_file_entry_by_utf8_path and
libewf_file_get_file_entry_by_utf16_path
* code clean up changed name of file entry item flags and moved it to
definitions
20111101
* small changes
20111031
* updated README.macosx
* added setvbuf
* updated libcstring, libsystem, libuna, libbfio, libfvalue, libhmac
* added windows codepage 932 and 936 support
20111030
* updated configure.ac and m4 files
* updated libhmac, libodraw, libsmraw, libfvalue, libsmdev
* updated tree type
* changes for libfvalue
20111023
* worked on ewf.net
* bug fixes in ewfmount
20111020
* updated README.static
20111017
* worked on ewf.net file entry support
* changes to m4/libuuid.m4
20111016
* added libewf_file_entry_get_offset
* worked on pyewf file entry support
* changed file entry date and time values to 32-bit values
* worked on ewfmount LEV support
* worked on ewf.net file entry support
20111015
* worked on pyewf file entry support
20111011
* fixes in comment in include header
* implemented OSXFuse support
* bug fix for libfuse detection
20111010
* fix in spec file
* ewfmount changed EBADFD into ENODEV
* checked if all functions are checked for
* bug fix in include header macros
20111009
* small fixes in ewfmount
* small changes in configure
20111008
* updated configure.ac and m4 files
* updated libsmdev, libodraw, libsmraw, libhmac
* bug fix in libsystem
* improved session and tracks detection in libsmdev
20111006
* updated configure.ac and m4 files
* bug fix in ewfacuire for handling -w option
20111002
* bug fix for cross compilation
20110926
* updated libuna, libbfio
20110922
* updated README files
20110918
* updated spec file
* added ewfmount.1 man page
* update libsmraw, libodraw, libsmdev
20110914
* prepated temporary libsmdev version
20110908
* added chunk offset grouping after chunk table section write
reduced memory usage during write
20110906
* libsmdev:
- worked on improved session/track support
20110905
* libsmdev:
- worked on improved session/track support
20110904
* pyewf: code clean up
* libsmdev:
- worked on improved session/track support
- reduced IO timeouts
- bug fix for information value strings
20110903
* ewfverify
- fix for verifying empty single files
- added error tollerance for "corrupt" single files
- added support for sparse data
20110901
* updated libsmraw
20110831
* updated libuna, libbfio, libhmac, libfvalue, libodraw, libsmdev
* updated m4/libsmdev.m4
20110829
* bug fix in ewfmount
20110828
* updated libbfio
20110823
* updated libbfio, libfvalue
* worked on ewfmount
20110822
* worked on ewfmount
* updated builder5 files
20110821
* worked on ewfmount
20110820
* updated libhmac, libbfio
20110810
* moved libewf.h include to separate file for tests
* updated README
20110809
* small changes
20110807
* fixed process status in export handle
* fixed error clean up in header values
* fixed delta segment files list clean up
20110806
* worked on improving ewfexport output and error tollerability
* updated libhmac - bug fixes for Solaris build
* fixed ewfexport not detecting ewf formats correctly
* updated libodraw
* improve handling of cached compressed zero byte empty block for older
version of zlib
20110801
* configure clean up
* configure added support for --with-libuna and others
* updated libhmac, bug fix in MD5 fallback functions
* updated .pc and .spec file
* updated manuals
20110731
* code cleanup - worked on TODOs
* updated libmfdata, libsmraw, libsmdev
* added > 2 GiB media and segment file size, and delta file open scenarios
* configure clean up
20110730
* updated README
* code cleanup - worked on TODOs
20110728
* fixed issue in libewf_utf8_string_day_of_month_copy_to_time_elements
* extended glob test for first letter change scenario
* created test file for table2 read (corrupted table)
20110727
* updated function checks for tracks functions
* updated libsmdev
* update in device handle for libsmdev UTF-16 and tracks functions
* libewf now prints header value parse errors in debug mode not verbose mode
* ewftools: fixed status print on abort
20110726
* updated libodraw
* worked on audio track support in sessions section
20110725
* worked on audio track support in sessions section
* updated libodraw
20110724
* updated libhmac
* code clean up
* multiple bug fixes:
- media size not being set for L01
- ewfverify return true while verification in correct
- single file type not being set
- buffer size calculation if exceeds maximum size
- due to re-use of hmac handles
* change seek offset behavior of single file to match POSIX
* added support target path "." in ewfexport
* made additional digest hash type detection more tollerable
* worked on audio track support in sessions section
20110721
* updated libhmac
* fix for SHA1 detection in -d argument
20110720
* updated libhmac
20110719
* updated libhmac
20110718
* updated libhmac
* ewftools: worked on SHA256 support
20110717
* worked on date time value functions
* worked on replacing libewf split values by libfvalue split string
* added ewf_test_get_offset test to ewf_test_read
* fixes to configure for MingW compilation of libhmac
* update msvscpp files
* worked on libhmac
20110716
* worked on date time value functions
* worked on replacing libewf split values by libfvalue split string
20110715
* updated libhmac
* worked on date time value functions
* worked on replacing libewf split values by libfvalue split string
20110714
* worked on replacing libewf split values by libfvalue split string
20110713
* updated libsystem: worked on replacing ->segments by functions
* updated libfvalue
* worked on replacing libewf split values by libfvalue split string
20110712
* info handle: replaced ->segments by functions
* updated libsystem: worked on replacing ->segments by functions
20110703
* worked on libhmac SHA1 fallback implementation
20110630
* worked on libhmac MD5 and SHA1 fallback implementation
20110629
* worked on libhmac MD5 fallback implementation
20110628
* changed direction of >= in ewftools to <=
* updated manuals
* fix for EWF_MAXIMUM_OFFSETS_IN_TABLE being applied to the ENCASE6 format
instead of EWF_MAXIMUM_OFFSETS_IN_TABLE_ENCASE6
20110627
* updates to libhmac and configure.ac
20110626
* refactored ewftools to use libhmac
* code clean up
* ewftools: worked on SHA256 support
* updated msvscpp, codegear and builder5 files
20110625
* updated autoconf/make files
* changed INTLLIBS to LIBINTL
* changes for: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body
* updated libmfdata, libfvalue, libuna, libbfio, libodraw, libsmdev, libsmraw
* code clean up
* worked on libhashf to wrap message digest hash functions
20110623
* code clean up in info_handle
20110610
* small changes to debug output
* Changes for LVF support
* added single file entry type function
20110531
* code clean up: digest_context
* updated common
* updated libfvalue
20110530
* updated libfvalue
20110523
* merged 20110519 changes - libmfdata fix
20110512
* worked on issue writing smart, no compression, chunk size 2048
- changed behavior to write at least 1 chunk even if chunk size > maximu segment file size
20110510
* worked on write finalize issue
- added ewfacquirestream multi segment test
- fixed issue in libewf_write_io_handle_finalize_write_sections_corrections
* small change to multi segment ewfacquire test
* updated libodraw
20110509
* small changes
20110508
* updated libodraw
* fix for retrieving empty UTF16 file entry name
20110504
* small changes
20110501
* updated include/codepage.h
* fixes in debug output
* changes for FTK imager format:
recent versions of FTK imager now longer force media type to be 0x01
and size of the last section is no longer set
20110427
* fix for LOCALE_RETURN_NUMBER clash on Vista/Win7
20110411
* fix for LOCALE_RETURN_NUMBER clash
20110329
* fix for initial segment file rewrite
* added split ewfacquire test
20110322
* updated configure.ac and libsmdev for improved STORAGE_BUS_TYPE detection
20110320
* worked on l17n
20110319
* added INTLLIBS to ewftools
20110312
* updated libuna, libbfio, libsmdev, libsmraw, libodraw
* msvscpp added VSDebug build option
20110306
* updated libmfdata
20110305
* worked on table2 backup data range support
20110303
* updated libbfio, libsmdev, libsystem, libcstring
- some changes for Cygwin WINAPI support
* worked on libmfdata integration
- update to clone function for groups
- moved data range values back into initialize
* fixes to ewftools
* fixes to test programs
* worked on audio track support
- worked on write support
20110302
* worked on audio track support
- worked on read support
20110218
* worked on audio track support
- worked on read support
20110214
* worked on libmfdata integration
- worked on backup data range support
20110211
* updated libodraw
* synced with alternative branch
- updates for builder5 and codegear
20110210
* worked on libmfdata integration
- worked on backup data range support
20110209
* updated libodraw
* worked on libmfdata integration
- removed segment table data file index lookup
- worked on backup data range support
* imaging handle
- correction of upper bound of error granularity in prompt
- correction of header values retrieval on resume
* fix for empty-block compression initialization
20110208
* worked on libmfdata integration
- removed segment table data file index lookup
20110204
* updates for msvscpp
20110203
* worked on libmfdata integration
* worked on ewftools
- detailed info is no longer printed on abort
- removed restrictive media size safe guard for optical discs from ewfacquire
* updated libodraw
20110202
* worked on libmfdata integration
20110201
* worked on libmfdata integration
* updated libsystem
20110128
* worked on libmfdata integration
20110127
* worked on libmfdata integration
20110126
* worked on libmfdata integration
20110125
* worked on libmfdata integration
20110123
* worked on libmfdata integration
20110122
* worked on libmfdata integration
* worked on debug output to match other libraries
20110121
* worked on read/write tests
* ewfacquire and ewfexport now allow for media size of 0 (empty)
* libewf: code clean up
* worked on libmfdata integration
* read/write fix for offset drift after write
20110120
* worked on ewf.net
20110118
* imaging handle
- fix for missing default maximum segment (file) size
* ewfacquirestream:
- fix for default evidence information
* worked on ewf.net
20110117
* updated libsystem, libuna, libbfio, libsmdev, libsmraw, libodraw
20110114
* updated libuna, libbfio, libodraw, libsmdev, libsmraw
* updated check for dependent functions
* ewfacquire: corrected behaviour of -g
* ewftools: worked on flush of md5 and sha1 contexts on error
* worked on ewf.net
20110113
* updated macosx files
* updated test scripts for SunOS 5.11 support
* ewftools: code clean up
20110112
* updated libsystem
* ewftools: code clean up
* tests: code clean up
* ewfverify: print filename with path
* completed libewf_single_file_entry_get_utf16_hash_value_md5
* added test for ewfexport of single files
20110111
* updated libsmraw, libodraw
* updated ewf.net
* single file entry:
- added get MD5 hash function
* renamed wipe/clean buffer to zero buffer
* ewftools: code clean up
* ewfverify: worked on L01 verification
* MD5 hash of single file entry is now turned into lower case by library
20110110
* updated libuna, libbfio, libfvalue, libsmraw
* code clean up
* export handle fixed memory leak for MD5/SHA1 context
* cariage return fixes in single files
* remove ewfalter from spec file
* libcstring fix for FreeBSD
* correction for access flags
* added system codepage functions
* worked on write resume improvements
- resume in table2 section
20110109
* updated libodraw
20110108
* updated common
* updated libcstring, libuna, libbfio, libsmraw, libsmdev,
* updated open_close.c example
20110106
* updated libodraw, libsmdev, libsmraw
* ewftools: code clean up
* ewftools: fixed spelling error in unsuported => unsupported
* ewfacquire: worked on optical disc RAW image support
* ewfacquire: bug fix for setting number of error retries
* test: worked on truncate equivalent
* test: code clean up
* test: added acquire of optical disc RAW images test
20110104
* updated libfvalue, libsmdev, libsmraw, libodraw
* fixed issue in file entry introduced in 20101025
* device handle added abort for libodraw
20110103
* added restriction for calculated section header next to match stored
* 2011 update
* bug fix in clone single file entry
20110102
* worked on error tollerance
20101221
* updated libodraw, libsmraw
* ewftools: adjustment of last sector value in output, no longer included in range
* ewftools: added support for 16 and 32 sectors per chunk
20101220
* fix for linking with debug output on Cygwin
* updated libodraw
* updated ewfinfo manual, added -f option
20101219
* updated libcstring, libbfio, libfvalue, libmfdata, libsystem, libsmraw,
libsmdev, libodraw
* code clean up
20101218
* updated libodraw
20101217
* renamed libodtoc to libodraw
* updated libodraw
* configure fix for platforms without libdl
* updated test scripts for FreeBSD support
* updated msvscpp, codegear and builder5 project files for libodraw
20101216
* code clean up
* worked on clone handle
* updated libbfio, libfvalue, libsmraw
* optimization of read loop
* ewfx added safeguard for long WINAPI timezone names
20101215
* worked on implementing DFXML patch by S. Garfinkel
* removed parsing of system_date from xheader
20101214
* code clean up in libewf and ewftools
* updated libbfio, array type, list type, sector list
* worked on clone handle
* worked on implementing DFXML patch by S. Garfinkel
20101213
* fixes for bugs and anoyances in ewftools
* code clean up in ewftools
20101209
* updated ewfacquire resume test to deal with missing truncate
20101208
* code clean up
* updated libsmraw, fix in segment file extension
* fix in ewfexport regarding raw output
20101207
* fixed inconsistency in media type in device handle for file-based input
* updated common, array type, list type, sector list, liberror, libnotify,
libsystem, libuna, libbfio, libmfdata, libsmraw, libsmdev
* added automatic detection of mingw and apply --enable-winapi by default
* code clean up
20101201
* code clean up
* updated libbfio
* updated sector list
20101119
* worked on removing snprintf from liberror
this function has inconsistent cross-platform behaviour
* updated libfvalue, libodtoc, libsmdev
* fixed bug in device handle session handling
20101115
* updated libbfio, libsmdev
* removed 0 return value from get_acquiry_error, get_checksum_error,
get_session functions, it had not meaning
* code clean up
20101113
* textual changes
* updated libsmraw, libsmdev
* ewfacquire: worked on TOC file support for optical discs
- added libodtoc
20101111
* updated libfvalue
20101108
* write finalize now creates segment file if media size is 0 and no data was
written
* updated libbfio, libsystem
* fix to format detection for empty EWF file
20101105
* worked on libewf .net wrapper ewf.net
* added const buffer of write functions
* created libewf.rc that is generated from libewf.rc.in
* added zlib.rc and libewf.rc to msvscpp projects
* bug fix in imaging handle due to code clean up
20101104
* worked on libewf .net wrapper ewf.net, based on smraw.net
* updated libbfio, libmfdata, libsmraw
* configure: added option to disable GUID/UUID support for static build
* added README.static
20101102
* updated libbfio
* worked on file pre-allocate support, posix_fallocate does not provide the
desired results
* updated liberror
20101029
* worked on file format session section
* updated debug output
* libewf now correct the first session sector offset
on read to 0
on write to 16, only if value is 0, to mimic EnCase like behaviour
* ewfacquirestream added -P option to set bytes per sector
* worked on ewfacquire, ewfacquirestream and imaging_handle code clean up
* worked on write chunk test
* updated libbfio
* worked on file pre-allocate support
20101028
* worked on ewfacquire, ewfacquirestream and imaging_handle code clean up
* worked on ewfexport and export_handle code clean up
20101027
* added fix for liberror WINAPI %s to %S conversion issue
20101026
* updated configure.ac
* updated include/types.h
* worked on ewfacquire, ewfacquirestream and imaging_handle code clean up
* fixed header values mix-up for operation system and software version
introduced in 20100719
20101025
* worked on automated tests
- added ewfacquire resume test
* worked on TODOs
* updated array type
* updated libfvalue, libsmraw
* moved xheader and xhash section reading into libfvalue
* added support for 5 value xheader date/time value
* fix for EWFX date/time value missing timezone introduced in 20100719
* fix in date/time string generation for timezone description
* worked on ewfacquire code clean up
20101022
* worked on automated tests
* removed dpkg files
* ewfexport: reactivated DISABLED, fixed export in different chunk size for
low level functions
20101021
* worked on automated tests
* changed compression_type into compression_level, libewf will return
compression_level if compression_type is requested
* small fixes in error notification
* added check for chunk data size not equal to media data size as specified in
volume section
20101020
* worked on automated tests
20101019
* validated configure functions checks of: libuna, libbfio, libsmdev,
libsmraw, libfvalue, libmfdata
* worked on automated tests
- moved existing tests into autoconf test framework
* ewfacquirestream will now also default to encase6 for encase1 format
* removed ewfalter from msvscpp project files
* removed ewfalter from automake files
* moved ewfalter to ewf_test_read_write
* updated libsmraw
* ewfacquire: fixed missing default maximum segment size in unattended mode
* ewfexport: fixed missing default maximum segment size in unattended mode
20101018
* renamed libewf_handle_[gs]et_segment_file_size
* worked on write beyond media size
20101017
* ewfacquire now allows 0 byte input file
* fixed number of sector rounding errors in output
issue only affects media sizes which are a non-sector multitude
* worked on automated tests
- improved glob test
* renamed libewf_handle_[gs]et_segment_file_size
20101015
* added missing types to error include header
* fix for incorrect session information
20101014
* updated codegear project files
* updated liberror, libbfio, libmfdata, libsmraw
* worked on pyewf
- fixed multiple bugs
- added error handling
- removed stub of pyewf_set_notify_values
- implemented pyewf_glob
* added seek test
* fixed complex seek scenario
20101013
* worked on optical media session detection for Linux
* fixed bug in header string generation function
* updated libsmdev, libbfio
* added static codegear project files
20101012
* updated libsmdev
* worked on optical media session detection for Linux
20101008
* updated libbfio, libsmdev
* replaced sector table by sector list
20101007
* updated libbfio, libsmdev
20101005
* remerged 20101003 changes with 20101002 due to error in bzip2-ed tar file
* updated codegear files
* updated builder5 files
* worked on UTF-16 functions
* fixed small memory leak in error on open
* fixed bugs in date time values formatting function
* ewfexport added exporting notification for files export
20101003
* worked on UTF-16 functions
20101002
* worked on UTF-16 functions
20100930
* worked on UTF-16 functions
* code clean up
* updated msvscpp files
* fix for non-initialized session data
* worked on UTF-16 debug output
20100929
* added open/close examples
* worked on UTF-16 functions
20100928
* updated liberror, libnotify, libsystem, libbfio, libfvalue, libsmraw
* worked on UTF-16 functions
20100908
* code clean up
* added single file entry date/time functions to the API
20100907
* updated libbfio
* fixed read beyond media size issue
* ewfinfo fixed issue handling empty extents
* updated macosx project file
* updated msvscpp files
* updated codegear files
20100807
* fixed errors introduced by libsmraw update in device handle
20100806
* updated builder5 files
* updated libbfio, libsystem
20100805
* worked on gettext support
* updated array type
* updated libcstring, libsystem, libuna, libbfio, libfvalue, libmfdata,
libsmdev, libsmraw
* code clean up
* worked on pyewf
* updated msvscpp and codegear files
20100724
* updated libmfdata, libsmraw
* added support for free without close
* renamed flags to access flags
20100723
* updated libbfio, libmfdata, libsmraw
20100722
* worked on libmfdata
* updated include/error.h and liberror
* updated libuna, libbfio, libsmraw
20100719
* code clean up
* corrected CRC into checksum
* refactored header and hash values, file entry name functions to UTF-8 variant
* implemented array type in libewf_offset_table, added encapsulation functions
* updated libuna, libbfio, libsmdev, libsmraw
* small improvement to write resume
* worked on integrating test scripts
20100718
* update for mingw compilation
* updated libbfio
20100714
* updated libuna, libbfio, libsmdev
20100713
* updated configure.ac
* updated include/error.h and liberror
* updated include/codepage.h
* updated array, list and tree type
* updated common, libcstring, libnotify, libsystem, libuna, libbio, libsmdev,
libsmraw
20100511
* updated libsmraw
20100505
* updated configure.ac and Makefile.am files
* updated libuna, libbfio, libsmdev, libsmraw
20100502
* updated libcstring, liberror, libuna, libbfio, libsmdev, libsmraw
* changed amount of to number of
20100501
* updated libbfio, libsmdev
* worked on clean up of acinclude.m4
* updated borlandc build files
* updated pyewf
* fixed typo in Makefile.am
* fixed incorrect comment in include header
20100430
* worked on mingw support
* updated libsmraw, libsystem, libbfio, libsmdev
* added WIN32_LEAN_AND_MEAN to common/common.h - disable due to use of
GUID/UUID functions
* worked on borlandc and codegear files
20100429
* worked on msvscpp build
* libcstring fix for missing memrchr
20100418
* added libcstring
* updated common, liberror, libnotify, libuna, libbfio, libsystem, libsmdev,
libsmraw
* email change
* refactored segment table
- added array type
- added functions for low coupling
- moved read and write function to handle and write io handle
- removed libewf_internal_handle_add_segment_file
20100314
* small changes to configure.ac
20100227
* applied ewfacquire argument swap patch
* updated libsmraw and libsmdev
* removed old raw code
* fix in ewfoutput
20100209
* fix for error parsing date time value in EWFX
* worked on direct IO support
- updated libsmdev
- configure added detection of posix_memalign
20100202
* updated libsmdev
* worked on smio handle support
* fixes for when format is not set on write
20100201
* updated libsmdev, libsmraw
* info_handle fix for media flags
* updated libewf.3 manual
* fixed missing libewf_glob_free_wide in include header
20100128
* updated libsmraw
20100126
* worked on solution for Debian 4.0 posix_fadvise break
* updated libsmdev
20100124
* worked on Borland C++ Builder 5.5 support
* updated common, liberror (snwprintf fix)
* updated libsmdev, libsmraw
* updated codegear and msvscpp files (io_*.[ch] removal)
20100123
* worked on windows support
* updated libbfio, libsmdev, libsmraw
* updates msvscpp and codegear files
* ewftools: removed io_.[ch] file, no longer required
* update for missing varadic macro support in Borland C++ Builder 5.5
20100121
* worked on maximum number of open handles
* updated libsmdev, libsmraw
20100120
* updated libbfio, libsmraw
* worked on maximum number of open handles
20100119
* updated libbfio
* worked on maximum number of open handles
20100118
* worked on moving read error handling into libsmdev
* updated libsmdev
* removed acquiry error print from ewfacquirestream
* moved acquiry error print from imaging handle to device handle
* ewfacquirestream removed wipe on error
* worked on means to set pools open handle limit in libewf
* refactor file io pool from io handle to handle
20100117
* worked on moving read error handling into libsmdev
* updated libsmdev
20100116
* worked on split RAW support for ewfacquire
* worked on moving read error handling into libsmdev
* updated libsmdev, libsmraw
20100110
* worked fix for restriction on large segment file and chunk
* removed use of base offset for linen6 format
* made ewfacquire more tollerant for missing device information
* added digest section support for linen6 format
* updated common, libsmraw
20100109
* small changes
* worked on libsmraw integration into ewftools
* worked fix for restriction on large segment file and chunk
* fixed ewfacquire manpage
20100108
* small changes
20100106
* updated libuna, libbfio
* worked on Borland C++ 5 compiler support
20100105
* worked on Borland C++ 5 compiler support
* removed sprintf support
20100104
* fixes for windows build
* updated libbfio
20100103
* worked on exporting LVF files
20100102
* 2010 update
* updated liberror, libuna, libbfio
* removed include/handle.h
* worked on wide system string support in liberror
20091230
* worked on exporting LVF files
20091229
* worked on reading LVF files
20091228
* worked on windows builds
* worked on Borland C++ 5 compiler support
* updated libbfio
20091225
* worked on reading LVF files
20091224
* fixed debug output of file header offset
* worked on reading LVF files
* aplied number of headers patch for v1 api
20091223
* replaced string split by split values
* worked on reading LVF files
20091222
* applied multi header patch
* updated libuna, libbfio, libsystem
* improved free return value
* worked on reading LVF files
20091128
* updated byte stream
20091122
* deprecated the v1 API
* worked on pyewf rewrite
* worked on implementing log handle in ewftools
* small changes
* worked on reading LVF files
20091114
* moved codepage definitions to libewf_codepage.h
* updated libbfio
* updated MacOS-X package project file
20091109
* fix for borland c compilation
* update to MSVSCPP project files
20091108
* fix for MSVSCPP compilation
* fixed incorrect return value in libsystem_glob
20091031
* fix for local use of libewf
20091030
* changed endian.h into byte_stream.h
* updated libuna, libbfio
* updated behavior of unmanaged file io handle
20091024
* add falign in device handle, small performance improvement
20091020
* fixed overflow of chunks_section_number in write io handle
20091018
* worked on aligned empty block test
* fixed error in help output of ewfacquirestream
* fixed error in ewfacquirestream regarding missing strings
* worked on cached zero byte emtpy block based on idea by Bas Kloet
20091017
* preperation for stable release
* removed All rights reserved because it has no additional legal value what so ever
20091003
* several fixes for Debian integration based on patches by Cristian Greco
* corrected license in list and array type and several of the pfftool handles
* updated libuna, libbfio
* updated several manpages
* changes to autoconf/make scripts to not link libcrypto and libuuid to libewf
* renamed debian to dpkg
* remove ZLIB_WINAPI from msvscpp configuration
* several fixes to configure scripts
20091001
* small changes in common
* made libewf a little more tollerant in allowing the data section not
to contain values, the values must be 0 otherwise libewf still enforces
validity checks
20090929
* worked on CodeGear project files
- disabled creation of pre compiled headers
20090928
* small changes
20090927
* worked on secondary image output
* added open resume signal handling in ewfacquire
* worked on CodeGear project files
* several minor fixes
* updated libbfio for fix of CodeGear _sopen issue
which results in files being created using libbfio_file_exists check
* ewfacquire now provides default media type based on device information
* updated list type
20090926
* worked on initialization issue
- set sectors per chunk is now read protected
- fixed bug in legacy wrapper set bytes per sector
* small fix in verbose output
* worked on secondary image output
* small cross platform fixes in ewfacquire and ewfacquirestream
* moved session handling from imaging handle to ewfacquire
20090911
* updated libsystem
20090905
* updated ewfinput codepage detection with libuna version
20090904
* updated codpage definitions
20090901
* worked on Borland C++ compiler support
* updated common/file_stream.h
20090829
* updated msvscpp libbfio project
20090828
* updated libuna, libbfio
* the parsing of the header and hash values is now handled by the library
the corresponding parse functions were removed from API v2
* all header and hash sections are now parsed for additional values
* updated libbfio detection
* worked on libbfio API extensions
20090824
* adjustments in ewftools io access
20090823
* minor adjustments
20090822
* updated common: narrow_string, memory
* updated libnotify
* bug fix in libewf_values_table
20090821
* small adjustments
* fixed handling 0 entries in libewf_values_table_initialize
20090820
* worked msvscpp solution files
* worked codegear project files
* small corrections in include/libewf/types.h.in
* fixed libsystem_file_io open mode
20090819
* updated libbfio
* updated libsystem_file
* moved libuna include from ewftools to libsystem
* fixed some small memory leaks in ewftools
* moved ewfsignal to libsystem_signal
20090817
* worked on common system library for ewftools
* updated msvscpp solution files
* updated libewf_date_time
* updated include/libewf/codepage.h
* updated libbfio
20090816
* worked on common system library for ewftools
20090815
* worked on common system library for ewftools
* rewrote ewftools date and time functions
* rewrote ewftools error string functions
* refactored ewftools to work with libsystem
20090811
* worked on Borland C++ Builder compiler support
* updated libbfio, liberror and libuna
* added m4 directory support to autoconf/make files for libtool
* updated list type
* fixed define error in libewf_libuna.h and libewf_libbfio.h
* updated libewf_notify
* updated ewftools: date_time, file_io, file_stream_io, glob
20090629
* worked on implementing Borland compiler patches
* updated msvscpp for libnotify
20090628
* updated libbfio
* updated liberror
* updated libnotify
* fixed Windows 64-bit ssize_t definition issue (pointerd out by Xavier Roche)
* worked on implementing Borland compiler patches by Peter Van Hove of IsoBuster
- added liberror sprint functions
20090624
* updated libbfio
* added allow shared read to device handle CreateFile
* fixed double string conversion in device handle for WINAPI build
* removed system string trim copy function
* added debug output to libewf_sessions
* added support for handling empty last session
* added libnotify
20090614
* small fix in libewf_glob_free
* worked on stable testing
20090609
* added libewf_glob_free to v2 API
* disabled chunk size option in ewfexport
20090606
* fixed missing code for correctly handling acquiry and system date header
values (Thanks to David Loveall)
* started working on improved version of pyewf
* fixed error in info_handle
* fixed issue regarding date time string must required to be at least 32 bytes
should be at least 20 or 25
20090528
* fixed error in marco libewf_get_header_value_case_number (thanks to Guy Voncken)
* updated libbfio, implemented support for track changes function
* implemented generation of common/types.h by autoconf
20090512
* updated liberror, libuna and libbfio
* worked fix for ewfexport for different input and output chunk sizes for low level functions
* checked use of uninitialized ->chunk_size ini ewftools handles
* fixed error in ewfacquire for write resume with low level functions
* fixed error in prepare write chunk for resume write
20090511
* bug fix in ewfacquire error handling code
* commented out some unused code
* bug fix in libewf handle open regarding base name
20090510
* updated libbfio
* added libewf_get_flags_write_resume
* fixed small memory leak in verification and export handles
20090509
* worked on support for missing segment files (chunks)
* applied patch by aozsyn for compilation errors of API v1 with low level functions and
python bindings
* corrected pyewf compiler warnings
* worked on detecting device removal, write finalize no longer closes segment
files if the media size was known and not entirely written
* ewfacquire now adds model and serial to header values
* ewfacquirestream implemented -B as write size upper boundary
* ewfacquirestream implemented -o as skip of an number of bytes
* ewfacquire: added support for acquiry resume offset alignment, for non block boundary offsets
* fixed crc buffer alignment error in write
* removed get version and flags for local usage of libewf
* fixed pyewf API v2 support
* fixed small memory leak in ewfinfo
20090506
* fixed unsupported codepage 0 on NetBSD, system string too strict
20090504
* fixed error in device read error handling
* added Darwin uuid/uuid.h support
* removed check for caseless string compare from configure
* added error to file_io updated system string accordingly
* added 32-bit number of sectors for MacOS-X
* refactored guid generate from ewfcommon to guid
* fixes for winapi
* added Cygwin uuid/uuid.h support
* changed ewftools dll import for Cygwin
* added libewf_is_dll to libewf.c, this function is not exported
20090503
* worked on usb disk support
* limited EWF/ENCASE1/SMART format to max 2 TiB acquire size
* encase6 format is now default
* library and tools pass automated tests
* fixed error in device handle seek offset not correctly returning the current offset
* fixed error in device read error handling
20090502
* worked on bus type support
* worked on optical disk support
* worked on usb disk support
* worked on Tableau support
20090501
* implemented 64-bit sector support for add crc and acquiry error and sessions in APIv2
* worked on refactoring volume type into media flags in ewftools
* added set media flags function to APIv1
20090429
* update for new findings regarding volume/data section
* changed APIv2 function handle_get_amount_of_sectors to have a 64-bit parameter
instead of 32-bit
* worked on EnCase Fastbloc write blocker support
20090427
* updated libuna
* worked on EnCase 6.13 Tableau write blocker support
* remove volume type functions/definitions in APIv2 and changed it to media flags
20090426
* worked on device information
* updated libbfio
20090425
* worked on libbfio exists handle function update
* updated libbfio
* worked on GUID support for windows build
* extents header value is now formatted in more table like manner
* fixed hash value identifier size issue in info and verification handle
* rename libewf_format to ewf_format in ewftools
* worked on device information
20090424
* updated libbfio - exist handle function update
20090422
* updated configure.ac
* worked on local use support
* implement codepage header file like in libpff
* moved typedef from handle.h to type.h include header file
* worked on automatic testing of write resume
20090421
* fixes for MSVSCPP build
* moved segment file size from write io handle to segment table
* segment file size is now set on read
20090420
* moved write finalize function to write io handle
* refactored sections correction out of write finalize function into separate functions
* removed \n from error strings in libewf and ewftools
* moved write initialize and resume functions to write io handle
* refactored chunk offset correction for last filled/compared offset
20090419
* worked on date and time strings
* changed crc_buffer from uint8_t * to void *
* libewf now tracks if pool was created inside library
* worked on acquiry resume
* updated libbfio
* added get segment file size functions to API
20090418
* changes for local use of libewf in libsmio
* updated process_status to use liberror
* worked on glob to use liberror
* updated libuna
* worked on adding set_header_codepage to ewftools
* worked on error tollerance
* worked on preservation of timestamps in header values
* fixed error in libewf_set_header_codepage
* EWFX date values now contain +/- UTC/GMT difference
20090415
* fixed == in configure.ac
20090414
* added to do to ewfexport
20090412
* refactored order of functions handles: open, close, read, write, seek
* corrected LIBEWF_DLL_EXPORT in ewftools to LIBEWF_DLL_IMPORT
* worked on imaging handle and ewfacquire
* fixed double free in verification and export handle
* updated libbfio
20090411
* fixed misplaces #endif in libewf header file
* fixed smart string length in ewfinput
* changed compress empty block into compression flags in ewftools
20090410
* small adjustments
20090405
* small adjustments
20090404
* implemented chunk and crc buffer alignment
* fixed crc mismatch in read delta chunk
* added support for delta chunks in libewf_handle_prepare_write_chunk
* added chunk size restriction in libewf_write_io_handle_write_existing_chunk
* updated libbfio
* added APIv2 function to retrieve current segment filename
* refactored file_io out of device_handle
* ewfexport, ewfverify now show which files contain CRC errors when compiled with APIv2 support
* worked on header codepage support in ewftools
20090403
* added configure option for static executables
* change raw-access configure option to low-level-functions
* fixed on raw access in ewfalter
* fixed read/write write beyond file size corruption
20090402
* Worked on pyewf
* Removed EWFCOMMON_BUFFER_SIZE from tests
20090401
* Fixed some small errors in API version 1 legacy support
* changed compress_emtpy_block into a compression flag
* changed empty block compression behavior for all compression levels
* add whence SEEK_SET, SEEK_END with 0 offset support to seek_offset
* refactored libewf_write to libewf_write_io_handle
* added support for Cygwin US-ASCII character set to system string
20090330
* Updated caseless compare functions with WINAPI support
20090329
* removed libbfio_file_io.[ch]
* worked on adding system error string support to libbfio error messages
* fixed multiple errors
* cleaned end of lines in error in libbfio
* worked on Windows PhysicalDrive device access
20090328
* updated narrow and wide string definitions
* removed HAVE_WIDE_CHARACTER_SUPPORT_FUNCTIONS
* change LIBBFIO_WIDE_SYSTEM_CHARACTER_TYPE into LIBBFIO_WIDE_SYSTEM_CHARACTER_T
and implemented WINAPI UNICODE system string detection
* worked on removing libbfio_file_io.[ch]
20090326
* updated type.h with corrected printf format specifiers for Windows
20090325
* updated windows config
20090324
* worked on native WINAPI file access in libbfio and device_handle
* fixed SetFilePointerEx offset correction for SEEK_CUR
20090323
* updated make dist for missing libbfio msvscpp files
* fixes for msvscpp build
* updated config_windows.h
* worked on native WINAPI file access in libbfio and device_handle
20090316
* worked on refactorin libewf_write
20090315
* worked on implementig v2 api in ewftools
* moved fgets to file stream IO
* renamed v2 api raw read/write functions
* refactored libewf_read into libewf_handle and libewf_read_io_handle
* refactored libewf_write into libewf_handle and libewf_write_io_handle
* worked on libewf_handle_open_pool
* removed libewf_internal_handle_create_header_values, default header values are now empty
20090314
* added verion 1 api disable functionality to configure.ac for testing purposes
* worked on signal handler for ewftools handles
20090313
* worked on unifying header/hash value functions ini the ewftools
* worked on alteration handle
20090312
* added support for separate libbfio
* updated glob.[ch]
20090310
* added segment file name size functions
* changed program to system string
20090309
* added values table get identifier and value size functions
20090308
* worked on libbfio support
- created libbfio_pool
- refactor libbfio_handle initialization out of libbfio_pool
- implemented SEEK_END in libbfio_file and libbfio_handle
* implemented libbfio_pool in libewf
* worked on v2 api
* changed libewf_character_t into uint8_t in libewf_values_table
* implemented libbfio_file_exists
20090307
* worked on libbfio support
* worked on v2 api
20090304
* worked on v2 api
20090303
* worked on raw access in verification handle
* worked on raw access in export handle
20090302
* worked on raw access in export handle
* updated manuals
20090301
* fixed regarding additional space in date value in libewf_convert_date_xheader_value
* worked on export handle
* fixed empty chunk issue in libewf_read_process_chunk_data
* worked on info handle
* fixed offset correction error in libewf_file_io_handle_seek_offset
* fixed memory leak in libewf_open introduced by legacy change
* removed ewflibewf
* fixed wide character type support compilation
20090228
* worked on simplifying read input function for ewfacquire(stream)
* worked on device handle - moved device code in ewfacquire to device handle
* added support for missing units in byte size string (defaults to mebibytes)
* fixed byte size string increment for no factor definition
* ewfacquire added -P option to set bytes per sector
* updated manuals
* added support for optical disk and memory media type in ewfacquire(stream)
* if removable or optical media type are chosen ewfacquire now defaults volume type to logical
* worked on info handle
* worked on export handle
20090227
* worked on imaging handle - refactored read input function
* worked on simplifying read input function for ewfacquire(stream)
* fixed missing verbose output
* worked on detection of sector size
20090225
* worked on imaging handle raw access support
* worked on v2 api
* fixed delcaration error in libewf_error.h
* moved error functions to libewf_error.c
* moved remaining function in libewf_file to libewf_support
* removed libewf_file
* added description of functionality of tools in usage information
* renamed libewf_interface into libewf_metadata
* implemented imaging handle in ewfacquirestream
20090224
* worked on imaging handle
* worked on v2 api
* MD5 and SHA1 digest are now set by libewf_set_hash_value function
20090223
* worked on imaging handle
20090222
* worked on locale support
* worked on imaging handle
* worked on v2 api
20090219
* fixed rogue free of filenames in verification handle in amount_of_files check
* fixed v2 api support in verification_handle_open
20090209
* worked on support for EnCase 6.12 SHA1 hash
* fixed error in unknown section debug output
* added support for process identifier and extents header2 values
* fixed NULL free in ewfverify
20090125
* worked on ewfverify and verification handle
* fixed missing libewf memwatch flags
20090124
* fixed missing quoted in configure.ac
20090118
* Updated headers
* Updated configure.ac to conform to cache value naming schema
* Updated autoconf/make to use flags and library definitions
* Fixed missing notify_dump_data in for debug output
* debug output is only provided on verbose output
* worked on ewfverify and verification handle
* Merged changes for EnCase 6.11 winen file format and memory image from 20080609 beta branch
* Removed byte swap from ewfverify not needed
20081207
* fix for printing GUID
20081019
* Updated liberror
* Added splint make option
* Worked on verification handle
20081018
* Minor adjustments
* Updated liberror_definitions with encryption error definitions
20081015
* Minor adjustments
20081013
* Fixed APIv2 of libewf_check_file_signature
20081012
* Worked on UTF character suppport
20081011
* changed ewfguid into guid
* removed string duplicate functions
* Worked on MSVSCPP build
* Worked on UTF character suppport
20081007
* small adjustments to support
20081005
* small adjustments to file io
20080928
* worked on making ewftools code more gereneric
* worked on making UTF-8 strings for internal use (not for filenames)
20080927
* small adjustment in makefiles
20080922
* fixed typo in definitions and internal definitions
20080921
* updated libuna
* updated configure and Makefiles
* implemented liberror
* renamed doc into documents
* removed date_time and notify from common
* changed HAVE_WINDOWS_API into WINAPI
20080917
* Small change in configure.ac
20080916
* Fixed issue in error
* Updated libuna
20080915
* worked on experimental version 2 API currently requires additional configure flag
- made libewf_handle_initialize and libewf_handle_free available
- rewrote open and close in correspondence with handle_initialize and handle_free
20080914
* worked on separation of narrow and wide character string functions
20080913
* worked on separation of narrow and wide character string functions
20080912
* worked on improved error handling
* removed error tollerance setting the code will be error tollerant if it is
able to compensate or certain a value is valid
* fixed issue regarding write finalize did not set data sections correctly
for streamed writes due to data section cache
* changed chunk offset compressed value to flags to also contain corrupted
* worked on improved method of handling corrupted offset tables
20080911
* worked on improved error handling
20080910
* worked on libuna
* worked on improved error handling
* implemted new version of notify dump data
* fixed check of libewf_string_snprintf should also check for > size
* removed explicit set end of string after snprintf
* worked on clean up of common
20080909
* replaced libuca with libuna
* worked on improved error handling based on libuna version
20080908
* minor changes to configure.ac
20080907
* worked on refactoring functions in ewfinput, too large input is now flushed
* refactored ewfcommon_determine_operating_system
* ewftools: added process buffer size option
- this allows performance testing using different buffer sizes
* ewftools: added missing in usage information
* ewfexport: added -l option
* ewfexport: added calculation of MD5 adn SHA1 hash of exported data
* ewfexport: fixed bug exporting with SHA1 hash
* ewftools: updated manuals
* ewfacquirestream: fixed issue not being able to terminate by CTRL+C due to
block by reading from stding - stdin is now forced to close in the signal handler
* file io pool now allows to be initialize with 0 file io handles
* fixed memory leak due to section list rewrite
* ewfacquire: worked on non interactive mode
* fixed error in byte size calculation for values with 2 digits after the separator
* added acquire unattended to automated tests (separate test cycle)
* added export sha1 to automated tests (part of alter test cycle)
* fixed issue where last segment file contained next section when acquired
with ewfacquirestream
* ewfverify: print additional available hashes
20080906
* refactored section list to use list type
* refactored libewf_values_table
* parse hash values will now handle MD5 hash to MD5 hash value conversion
* get MD5 hash will now handle MD5 hash value to MD5 hash conversion
* set MD5 hash will now handle MD5 hash to MD5 hash value conversion
* get MD5 hash value will now handle MD5 hash to MD5 hash value conversion
* set MD5 hash value will now handle MD5 hash value to MD5 hash conversion
20080905
* worked on refactoring code
* rewrote _alloc() functions into _initialize() functions with corresponding _free() functions
* worked on file io pooling
* improved way to determine if a segment file has been closed after write
20080904
* worked on refactoring functions in ewfinput
* combined empty block compression and other compressions in ewftools
* change empty_block to empty-block the former remains to work
* fixed error in UTF-8 handling (libuca)
* updated MacOS-X package changed project website
* updated MSVSCPP project files
* fixed multiple ewfglob issues
* removed secondary offset table from handle
libewf now checks and corrects differences with primary offset table
* integrated check for ctime in autoconf CTIME check
* created libewf_handle_initialize and libewf_handle_free functions
not available for api yet
20080903
* worked on integrating libuca and replacing string conversion routines
* fixed missing split lines issue in libewf_header_values_parse_header_string
* fixed underflow issue in libewf_string_split
20080902
* refactored process status
* code clean up in ewftools
* implemented ewfguid
* refactored character string split to return int
* changed project website
* worked on integrating libuca and replacing string conversion routines
* removed ewf_char.h and ewf_string.h
20080901
* refactored ewfglob
20080831
* added libewf_extern.h
* Improved configure.ac
20080830
* removed errno.h include from ewftools where not used
* Improved common and configure.ac
* Renamed _char_t functions to _system_character functions in ewftools
20080821
* ewfalter now support single segment file as argument
20080820
* ewfverify, ewfinfo and ewfexport now support single segment file as argument
* fixed bug in libewf_glob function in automatic detection of ewf type
20080810
* fixes to the python bindings based on patch by David Collett
20080809
* Synchronised branches
* Fixed seek end of file based on patch by David Collett
* Fixed return at wrong location in libewf_date_time_gmtime
* Implemented libewf_get_offset API function
* relicensed to LGPL
* implement features.h
* updated common with libpff 20080808 version
* changed libewf_notify_set_values in libewf_file.c to notify_set_values
* implemented python bindings based on patch by David Collett
20080705
* added ewfouput_error_fprint
20080704
* added fopen and fclose to configure
20080511
* minor changes
20080505
* Consistency update in API for get and set media and volume type functions
* Updated configure.ac
20080501
* Fixed the package config file (.pc) (Nicolas (kwizart))
* Fixed the debian package files (Guy Voncke)n
* Fixed minor issue in the manual (Guy Vonckens)
* Fixed make lib (Christophe Grenier)
20080430
* Fixed in configuration for MSVCPP wide character compilation
* Fixed small memory leak
20080426
* Minor changes
20080416
* Minor changes
20080412
* Fixed issue (introduced by RW fixes) in libewf_glob
* Uncommented dh_makeshlibs in debian/rules
20080405
* Moved basename from segment table entry 0 to segment table
* The segment filename can now be overwritten during acquiry this allows
alternative segment filename paths
* updated manuals
* improved ewfalter test scenarios
20080403
* Fixed macosx installation path
20080330
* Fixed multiple bugs in read write mode, delta files were initiallity opened without read access
* Worked on ewfalter to handle more complex RW scenarios
* Changed libewf_read_chunk_data no longer to copy to buffer if buffer is the chunk cache data
* Fixed unnecessary reopen of delta segement file in libewf_segment_table_create_segment_file
20080329
* Fixed wrong license in MacOS-X package
20080323
* Moved functions in libewf_file to libewf_interface and libewf_support
* Renamed libewf_internal_handle to libewf_handle
20080322
* implemented endian conversion macros
* fixed minor issue in libewf_debug_header_print
20080320
* performance testing
* fix for %jd and %zd detection for gcc-2.95 on Debian 3.1
* fix for openssl evp and gcc-2.95 on Debian 3.1
* fixed sha.h detection error in autoconf/make scripts
* updated manuals
* fix for %jd and %zd detection for OpenBSD
because gcc throws a warning if %jd has no parameter but fails to print the parameter
* implement usage of LIBEWF_WIDE_CHARACTER_TYPE instead of HAVE_WIDE_CHARACTER_TYPE in header and source files
except in common code
20080319
* refactored test write functions
* refactored the conversion from offset table to table offsets from section to
segment file this reduces multiple unnecessary conversion
20080318
* removed overflow from write - this seems to be a bug in EnCase 6.7.1
behavior is no longer present in EnCase 6.8, read still support overflow
this will allow to convert faulty EnCase 6.7.1 EWF files
20080317
* fixed typo in configure.ac
* libewf EnCase 6 >2GB segment files not compatible with EnCase 6.8
offset table overflow is no longer written by libewf
* added LIBEWF_CD_SUPPORT for testing purposes
- no way to detect number of sessions yet, will default to 1 section with
start sector 1
* changed trailing bytes warning into verbose print
20080315
* corrected dist clean in Makefile.am
* corrections for MSVCPP project
* fixed binary stdout for WINDOWS version of ewfexport
* fixed binary stdin for WINDOWS version of ewfacquirestream
20080314
* Fix for verbose output
20080313
* tested session section R/W functionality
* made package ready for stable test
20080312
* Code clean up
* ewftools implicitly link libcommon
* fixed memory leak in header values for export to ewf
20080309
* Code clean up
* fixed ewfcommon_determine_operating_system
* fixed overflow on compression read error, buffer is no longer passed for
compressed chunks
* fixed raw access parameter mix up
20080308
* Code clean up
* worked on seperating common code
* fixed issue with byte size string and more than 1 digit after the seperator
will now handle 2 digits and skip remaining
* fixed issue with minimum segement file size in ewf tools also lowered values to 1.0 MiB
* implemented determining session size
* fixed MSVCPP project
* fiexde signal handling for Windows
20080306
* Code clean up
* worked on seperating common code
20080305
* Code clean up
* worked on signal handling
* fixed issues with date string in header
* fixes for missing printf "%jd" and "%zd" under Cygwin and WIN32
* worked on seperating common code
20080304
* Code clean up
* worked on signal handling
* fixed error due to fclose( NULL ) in ewftools
20080303
* Code clean up
* added byte size string to ewfinfo
* updated manuals of ewfinfo
* worked on signal handling
20080302
* Code clean up
* worked on session support
* ewfinfo will now output session information if present part of media information
* worked on byte size string
* added byte size string to ewfacquire, ewfacquirestream and ewfexport
segment file size, not to acquiry size due to possible rounding errors
* updated manuals of ewfacquire, ewfacquirestream and ewfexport
20080301
* Code clean up
* Refactored hash and header value functions
* fixed writing incorrect linen6 header
20080229
* Code clean up
* safe guarded libewf set functions for read/write
* made header parse more fault tollerant
* rewrote UTF16 conversion routine also handle wide character strings
solves issues with mbsrtowcs (handling characters like back space)
20080228
* Worked on not finalizing on error
* Refactored libewf_header_values_parse_header and libewf_header_values_parse_header2
* Removed dirty value from offset table entry, reduces memory usage
* worked on export to EWF
* worked on handling not empty chunk cache in write existing data
data in chunck cache is ignored for now, write existing is not called
without a read handle
* fixed logical error in write existing data
20080227
* refactored ewfdigest_hash
* changed LIBEWF_VERSION into LIBEWF_VERSION_STRING and added numeric LIBEWF_VERSION
* added LIBEWF_WIDE_CHARACTER_TYPE definition
* Worked on not finalizing on error
* Code clean up
20080225
* Worked on not finalizing on error
20080224
* Added error output to the log
* refactored ewfinfo
20080223
* worked on logging of digest hashes to log file
* refactored ewfacquire, ewfacquirestream, ewfexport, ewfverify
* updated manuals
* moved libewf_internal_handle_determine_format to header_sections
20080221
* fixed logical error in libewf_write_test_chunks_section_full
changed section_amount_of_chunks > maximum_section_amount_of_chunks to >=
solves >16375 chunks offset table issue
20080220
* Worked on refactoring chunk dirty to segment file type
20080219
* removed corruption detection test in libewf_segment_file_write_chunks_data
no longer needed
* code cleanup
* refactored use internal handle in libewf_write
20080217
* added corruption detection test in libewf_segment_file_write_chunks_data
needed for test
20080214
* worked on abort
* worked on low memory usage
* code cleanup
* removed libewf_filename_get and libewf_filename_set
20080212
* fixed ewfverify the EWF file can be verified without the integrity hash
as pointed out by David Loveall
* fixed incorrect default segment file size in ewfacquirestream
as pointed out by Dennis Schreiber
* fixed missing ewfinfo -e option
20080202
* code cleanup
20080129
* small adjustment in libewf_get_format function
20080127
* corrected comment in libewf.h.in
20080126
* code clean up
* implemented libewf_glob function
* worked on signal abort function
* fixed incorrect return value in raw read
20080119
* worked on basic multi threaded safety
20080115
* worked on refactoring write initialize
* added initialize function for format specific write values
* added initialize function for media values specific write values
20080114
* removed initialize write in libewf_raw_write_prepare_buffer
messes up multi threaded compression aproach
* removed write initialize from libewf_get_chunk_size
chunk_size is calculated on set of sectors_per_chunk and bytes_per_sector
* removed libewf_internal_handle_read_initialize
* worked on refactoring write initialize
20080112
* removed errno from library
* fixed error regarding hours in ewfoutput_timestamp_fprint
20080107
* added more verbose output for raw write
* added check for read sub handle in libewf_write_buffer and
libewf_raw_write_buffer
20080106
* worked on removing type definition
20080105
* Used memwatch to analyze allocation issues
* Fixed memory leakage due to insufficient error clean up in
libewf_segment_table_read_open
* ewfacquire user input now defaults on error instead of bailing out
20080103
* Used memwatch to analyze allocation issues
* Fixed memory leakage in values list and in internal handle with
sector table
* Fixed missing libewf_common_alloc in ewfalter
* Added NULL pointer free protection against non NULL protected
libewf_common_free replacements
20080102
* Updated package config file
20071230
* adjustments to summary message to configure.ac
* worked on MacOS-X package
20071229
* added summary message to configure.ac
* small changed to debian package files and Makefile.am
20071228
* removed libewf_error_sector_table.h
* type definition consistency changes in read input function in ewftools
* updated year in copyright
* changed LIBEWF_SECTOR_TABLE to libewf_sector_table_t
* changed LIBEWF_CHAR and EWF_CHAR into libewf_char_t and ewf_char_t
* changed EWF_SESSION and EWF_SESSION_ENTRY to ewf_session_t and ewf_session_entry_t
20071227
* moved hash string length from libewf definitions to ewfstring
20071222
* changed CDROM media type into CD media type
20071209
* minor changes to debian package files
* fixes for the MS Visual C++ build
* added ewfalter to MSVCpp build
20071208
* pkgconfig added to spec file
20071205
* minor change in defaults
20071201
* worked on refactoring code
* API changes to get and set functions
20071130
* worked on refactoring code
20071129
* worked on refactoring code
* fixed error in delta chunk size
20071128
* worked on refactoring code
20071126
* minor changes
20071124
* worked on refactoring code
* made buffer passthrough default behavior
* ewfexport added sha1 calculation support
* fixed error writing segment files > 2 Gib
* reduced multiple successive crc error entries to a single
* reduced multiple successive acquiry error (error2) entries to a single
* ewfcommon_export_ewf added raw access write support
* change string to (u)int64 conversion routines to use long long equivalents
* ewfacquirestream and ewfexport added > 2 GiB segment file support
* libewf_filename_create now takes string and length as parameters
* ewfalter added functionality to set delta segment file path/basename
20071123
* worked on refactoring code
* moved libewf_offset_table_compare after the full index build
in libewf_segment_file_read_open
* added chunk size to delta chunk for redundancy
* removed internal handle from most functions in section
* ewfexport added argument set detection for interactive mode
* section read count is returned instead of section size when possible
* fixed win32 support solution file and ewfglob
* added section type length to section list entry
* added length filename in segment file struct
* fixed error in error2 section regarding debug
* worked on session section
* added CD-ROM media type
20071121
* worked on refactoring code
* libewf no longer allows to raw read/write a chunk of 0 bytes
20071120
* worked on refactoring code
20071119
* worked on refactoring to use segment file struct in section
* changed stored delta segment number to 1 ... x count instead of 0 ... x count
20071118
* refactored segment table to a table of segment file **
* refactored offset table chunk offset segment_number and file_descriptor to reference of segment file
* worked on refactoring to use segment file struct in section
20071117
* changed MB to MiB, etc.
* worked on refactoring offset table to table of chunk offsets
* worked on IO pool
* removed common alloc/realloc cleared functions
* libewf_segment_file_write_open is now used by libewf_open
* removed libewf_offset_table_set_values
* implemented libewf_filename to reduce code duplication for wide character type
* worked on refactoring the offset table to use the segment file struct
20071114
* worked on refactoring segment files functions
20071113
* worked on refactoring segment table to table of segment files
* fixed error in libewf_raw_read_chunk regarding use of the right segment table
* worked on refactoring offset table to table of chunnk offsets
20071112
* change default segment file size to 1500 MB (^10)
about 1400 MB in (^2), 3x segment files should fit on a DVD
* worked on refactoring segment table to table of segment files
* removed segment number in table check from libewf_segment_file_read_sections()
20071111
* changed default wipe behavior for ewfacquire(stream)
default behavior is that only remainder of the chunk is wiped instead of the entire chunk
* Updated manual pages
20071110
* updated MSVSC++ project files
* commented out io pool
* automated delta file testing
* added libewf_convert_date_xheader_value
* added ctime date format to ewfinfo which is now default
refactored header values dat conversion functions
* ewfacquire wipes remainder of chunk on acquiry error if wipe chunk is not set
* fixed error in reading error2 section
20071107
* worked on delta file
20071106
* worked on delta file
delta chunk header data is now 'protected' by a CRC
* ewfacquire(stream) added check if last segment file is closed
before telling acquiry was completed, by moving close
handle before complete notification
20071105
* refactored raw access support in ewfexport
20071104
* refactored write functions
* refactored read functions
* worked on raw access support for ewfexport
* small fixes in ewfexport
* fixed write of duplicate table(s) in finalize, introduced by MD5 move
* checked usage of stderr and stdout in ewfexport
* worked on raw access support in ewfexport
20071103
* refactored write functions
20071030
* fixed input handling of format in ewfexport wide string support
* fixed handling problems with raw read and size returned
20071028
* fixed error in write finalize for ewfacquirestream, due to restrictive check
* fixed error for handling wide character delta segment filenames
* worked on read wipe chunk on error
* fixed miscalculation for CRC error in last chunk in read
* added function to API to add CRC errors
* fixed wrong function calls in ewfoutput_crc_errors_fprint
20071027
* Worked on cleaning up ewf struct read and write functions
* Cleanup of set/get functions in internal handle
* Added libewf_get_amount_of_acquiry_errors
* Wrote API functions to rid ewfcommon of internal_handle for acquiry and
CRC errors, header and hash values
* Moved duplicate code for handling header and hash values into libewf_values_table
* Removed internal_handle from ewftools
* ewftools no longer create human readable byte string if size <= 1024
* changed int8_t return values into int return values
* changed libewf_get and libewf_set functions for API consistency
* moved several get and set functions from internal handle to file
* fixed error in windows retrieving digest hashes
20071016
* Worked on cleaning up ewf struct read and write functions
20071015
* Worked on file io handler
* Worked on cleaning up ewf struct read and write functions
* change section start to static definition in libewf_section_last_write and libewf_section_start_write
20071009
* Worked on file io handler
20070919
* Worked on implementing raw read in ewftools
20070918
* Worked on implementing raw read in ewftools
20070916
* Fixed bug in libewf_section_hash_read introduced by MD5 calculation removal
* Worked on implementing raw read in ewftools
- moved the string functions from ewfcommon to ewfstring
- moved the user input functions from ewfcommon to ewfinput
- moved the user output functions from ewfcommon to ewfoutput
- updated MSVCPP project files
- seperated read and crc/uncompression functions
20070915
* Worked on deb based package
- added distclean make directive
* Adjusted rpm based package
* fixed for rogue next sections in delta segment file section list during RW
* fixed libewf_debug_read_section to handle a size of size64_t
- still limited to SSIZE_MAX
20070912
* fixed on error in delta file accouting for multiple rewrites
* removed libewf_write_chunk, libewf_internal_handle_read_is_initialized
and libewf_internal_handle_write_is_initialized
* fixed write finalize after R or RW open
* clean up of small to do's
20070910
* worked to allow to set the delta file path
* fixed error in delta file header offset handing
* worked on error regarding delta file end
20070908
* worked on remove of MD5 calculation from library
- implemented MD5 calculation in ewfcommon for ewfacquire and ewfacquirestream
- removed libewf_set_media_values, calculated_md5_hash and libewf_raw_update_md5 from API
- removed digest context and MD5 from library
- removed calculated MD5 hash and MD5 context from internal handle
- added macros libewf_get_hash_value_md5 and libewf_get_hash_value_sha1 to API
- added macros libewf_set_hash_value_md5 and libewf_set_hash_value_sha1 to API
- removed libewf_get_md5_hash from API
- removed several libewf_internal_handle_get_ and libewf_internal_handle_set_ functions
* worked on write support for > 2 GiB segment file for EnCase 6.7
* added check to libewf_close to enforce libewf_write_finalize
* worked on having compound reallocation functions return an integer as result
- removed libewf_internal_handle_chunk_cache_realloc
* worked on moving byte swap out library into ewftools
- removed libewf_set_swap_byte_pairs from API
20070905
* worked on remove of MD5 calculation from library
- removed MD5 calculation from read
- implemented MD5 calculation in ewfcommon for ewfverify
- removed hashed flags in offset table
- removed libewf_calculate_md5_hash from API
* worked on read support for > 2 GiB segment file for EnCase 6.7
20070830
* changed use of stdout and stderr in ewfacquirestream, ewfinfo, ewfalter
* removed program: error output in ewfacquire, ewfverify
* fixed duplicate write of delta chunks
20070829
* worked on read support for > 2 GiB segment file for EnCase 6.7
* worked on write support for > 2 GiB segment file for EnCase 6.7
* worked on session section support
* changed use of stdout and stderr in ewfverify
* added errno == 0 check in ewftools after libewf open to prevent
the following output
"Unable to open EWF file(s) with failure: Success."
20070828
* worked on read support for > 2 GiB segment file for EnCase 6.7
* changed off_t to off64_t for Windows > 2 GiB segment file support
* worked on write support for > 2 GiB segment file for EnCase 6.7
* changed use of stdout and stderr in ewfacquire
20070827
* removed libewf_common_string_copy and libewf_common_wide_string_copy
using memcpy instead
* changed some int8_t return values into int return values
* worked on changing libewf_get functions for API consistency
* removed unused macros from internal handle
* replaced libewf_set_media_values by libewf_set_sectors_per_chunk
and libewf_set_bytes_per_sector
20070822
* worked on allowing the internal MD5 calculation to be disabled
* changed some int8_t return values to int
20070821
* worked on ewfexport exporting ewf formatted data for delta merge
* print a more detailed error in ewftools for open errors
* fixed number of bytes to acquire in ewfacquire
20070819
* worked on restructuring to improve internal structure
* worked on improved rewrite using delta segment files
* change libewf_offset_table_realloc to return integer value
because function does not change pointer of offset table itself
the same for libewf_fill_offset_table and libewf_offset_table_read
* completed reading dirty chunks from delta segment files
* fixed spelling error in unsuported => unsupported in ewftools
* rewritten #ifdef to #if defined() and #ifndef to #if !defined()
* refactored user input handling code from ewftools to ewfcommon
* worked on ewfexport exporting ewf formatted data for delta merge
ewfexport no longer exports to stdout
specify '-t -' to write to stdout only for continuous raw output
* added libewf_get_flags_ function for use of libewf in Phyton with ctypes
20070818
* worked on restructuring to improve internal structure
* worked on improved rewrite using delta segment files
* completed refactoring of PRINT( "libewf and PRINT( "ewf
function names
* changed warning strings with 2^ values to value exceeds maximum
* write optimalisation:
- the data section is cached for multiple writes
- refactored libewf_get_chunk_size out of ewfcommon_read_input
* removed libewf_write_process_chunk_data no longer needed
20070816
* worked on restructuring to improve internal structure
* worked on improved rewrite using delta segment files
* removed internal handle passing from libewf_section_start_read,
libewf_section_start_write
* changed section start allocation in libewf_section_start_read from
dynamic to static
20070815
* worked on restructuring to improve internal structure
* worked on improved rewrite using delta segment files
20070814
* worked on restructuring to improve internal structure
* worked on improved rewrite using delta segment files
* made macros of libewf_date_string_set_month,
libewf_date_string_set_day_of_month, etc. in header values
20070813
* worked on restructuring to improve internal structure
* worked on improved rewrite using delta segment files
20070812
* worked on restructuring to improve internal structure
* worked on improved rewrite using delta segment files
* moved gmtime function from libewf_common to ewfcommon
* removed error string from libewf_write_finalize
* moved strerror functions from libewf_common to ewfcommon
* removed chunk cache passthrough
20070811
* removed external char
* removed error string from libewf_check_file_signature,
libewf_segment_file_read_open, libewf_segment_file_write_open
* merged common code in wide and narrow functions
* worked on restructuring to improve internal structure
* worked on improved rewrite using delta segment files
* removed segment_table_build
20070809
* fixed weird progress indiction, changed localtime into gmtime
* fixed error in libewf_close comment regarding return value
20070807
* worked on restructuring to improve internal structure
* worked on improved rewrite using delta segment files
20070806
* worked on restructuring to improve internal structure
* worked on improved rewrite using delta segment files
20070728
* worked on restructuring to improve internal structure
20070725
* worked on restructuring to improve internal structure
20070723
* worked on allowing to read raw buffers as chunks
* worked on restructuring to improve internal structure
20070722
* worked on allowing to write raw buffers as chunks
20070721
* worked on allowing to write raw buffers as chunks
* removed is_dll function no need
* adjusted seek offset function
* added libewf_segment_file to give library improved structure
20070718
* worked on allowing to write raw buffers as chunks
20070717
* worked on allowing to write raw buffers as chunks
* refactored function names into static char *
* ewfacquire stream made physical default instead of logical just like in ewfacquire
* fixed configuration error in MSVS C++ libewf_dll project file
wrong DLL compilation mode /MT
* added fix for off_t being 32 it in MSVS C++
20070716
* worked on allowing to write raw buffers as chunks
* refactored function names into static char *
20070715
* worked on libtool DLL support
* worked on allowing to write raw buffers as chunks
* fixed reallocation bug in libewf_internal_handle_add_crc_error_chunk
* refactored function names into static char *
20070714
* worked on libtool DLL support
* worked on allowing to write raw buffers as chunks
* refactored function names into static char *
20070713
* worked on libtool DLL support
- changed macros in libewf_extern.h into LIBEWF_DLL_EXPORT and _IMPORT without the S
* made libcrypto EVP interface default, use MD5 and SHA1 as fallback
* refactored function names into static char *
20070710
* refactored function names into static char *
* removed type from configure.ac
20070708
* worked on space in directory issue
* added DLL support to configure.ac
20070707
* added fix for missing type definition u64 in linux/fs.h on some platforms
* worked on issue with progress indicator, removed usage of difftime
time_t B - time_t A should equal difftime without conversion to double
20070526
* removed the advertisement clause from the license
20070512
* changed default order of physical and logical in ewfacquire - makes more sense this way
* updated manuals
* fixed error in example of ewfacquire manual page
20070407
* minor corrections for Win32 port
* fixed error in passing error retry value in ewftools
* fixed memory corruption in libewf_internal_handle_set_acquiry_error_sector
20070406
* worked on next stable release
* added status print to ewfacquirestream
* change to print of type in notify
20070317
* worked on next stable release
* changed libcrypto back to the MD5_ and SHA1_ interface still allows for EVP and Windows Crypto API
20070304
* minor type adjustments
20070303
* fixed bug regarding growth of segment file beyond maximum size
20070225
* fixed typo in libewf_handle.h
* fixed cause of segmentation error in libcrypto
20070218
* added include of libewf_types to libewf_handle.h
20070210
* worked on changing size and offset types
20070208
* worked on changing size and offset types
- fixed some errors while testing
20070207
* worked on changing size and offset types
20070206
* worked on changing size and offset types
- updated libewf.3
20070205
* worked on changing size and offset types
- fixed issue in section list after adjustments
- reduces storage size and fixed issue in fill table
20070204
* worked on changing size and offset types
20070203
* worked on changing size and offset types
- changed ewf_string_length, ewf_string_copy and ewf_string_compare into macro's
- fixed memory leak in ewf_string_write_compressed
* worked on code clean up
- rewrote libewf_common_alloc and _realloc to macro's
- rewrote libewf_common_read, _lseek, _write and _close to macro's
- rewrote ewf_x alloc funtions to macro's
- removed ewf_type specific alloc and free macro's
- removed ewf_error2_sectors_realloc, was not used and resizing should be handled by libewf_common_realloc
- removed ewf_table_offsets_realloc, was not used and resizing should be handled by libewf_common_realloc
- removed ewf_string_realloc replaced by libewf_common_realloc
- removed ewf_string_wipe replaced by libewf_common_memset
- removed libewf_error_sector.c
20070131
* worked on changing size and offset types
20070130
* worked on changing size and offset types
- file header now allocated statically
- rewrote section type tests functions to macro's
20070129
* worked on changing size and offset types
- added sys/types.h to libewf_types.h
20070128
* worked on seperate config header files for library and ewftools to fix installable header issue
- removed LIBEWF_CHAR from API, wide functions were added
* remove quick refences in header values
- breaks compatibility with 0.2.1 version of libmodewf.c - was already broken due to new API design
* moved non portable headers back to library path
20070127
* worked on seperate config header files for library and ewftools to fix installable header issue
- changed functions containing CHAR_T in library to separate small and wide character functions (for trace-ability)
- moved error_string print out of common function
- removed open_read and open_write
- moved copy from and to char_t functions out of the library into ewfcommon
- CHAR_T now removed from library
* implemented internal_handle to hide handle representation from outside code
- added serveral API functions
* renamed handle where used as internal handle to internal_handle
20070125
* worked on seperate config header files for library and ewftools to fix installable header issue
20070120
* now using openssl EVP interface instead of directly accessing MD5 functions
* worked on implementation of xhash section
- added hash values to handle
- added get and set funtions for hash values
- updated libewf.3 manual page
* created a more generic digest_context and EWF digest hash to support SHA1
- replaces MD5 context and hash by digest context and hash
* an option was added to allow for SHA1 calculation from ewfacquire and ewfacquirestream
- updated manuals
* added print of additional hashes to ewfinfo
* added verification of SHA1 hash to ewfverify
* seperate generic definitions from libewf_config.h
20070118
* worked on reducing the usage of header values quick references in libewf and ewftools
* using equal definitions for CHAR_T as for LIBEWF_CHAR
* worked on implementation of xhash section
* fixed issue EWXF format not setting GUID in data section
20070117
* worked on reducing the usage of header values quick references in libewf and ewftools
20070116
* added new header values functions to libewf.3 manual
* added reverse string search function
* changed forward string search to macro
* corrected error in split string due to new string search
* changed string length function to macro
* changed string compare function to macro (return type change)
* changed string copy function to macro (return type change)
- make sure the string is \0 terminated after copy
* now using reverse search in parse xheader function for close tag
* fixed error regarding the examiner_name parameter for ewfacquirestream
20070115
* adjusted creation of xheader string
* added function to add user defined header value
* added acquiry_software xheader value to ewfacquire and ewfacquirestream
* changes to spec file to include ewfacquirestream
* added function to parse xheader
* added random GUID to EWFX
* ewfinfo will now print extended header values
* xheader: give acquiry date human readable timestamp with time zone
* ewfinfo change Software used into Software version used
20070114
* worked on redesign of header values
* fixed missing data issue in ewfacquirestream for large block sizes in combination with chunk cache passthrough
* added manual for ewfacquirestrema and updated manuals
* header values now uses a dynamic array
- old pointers left in for compatibility at the moment
20070113
* changed free functions for basic types to macro's allows for optimization
* made adjustments due to splint warnings
- fixed error regarding buffer_size of ewf_crc_calculated being a signed interger while it should be an unsigned one
- fixed error regarding parameter validation due to optimalizations in ewf_string_copy
- fixed possible integer overflow in ewf_volume_calculate_chunk_size and ewf_volume_smart_calculate_chunk_size
- fixed not checking the return value of close in libewf_common_close
- adjusted compression level in header values from uint8_t to int8_t (for consistency)
* changed API of libewf_close to return a status value
- adjusted ewftools accordingly
- most functions return -1 on error (for consistency)
* removed STREAMED_WRITE sections
* updated manuals
20070111
* fixed issue with unrestricting number of offsets
* media flags are written to volume and data section
20070110
* changed libewf_set_write_media_type to set volume type
* added option to set volume type in ewfacquire and ewfacquirestream
* fixed error in new header types, two value lines do not contain additional tabs
20070109
* added information about unknown_md and _sn
* added libewf_header_value for more generic approach to handling header values
* the volume media type in EnCase uses 0x00 for a floppy image and 0x01 for a hard disk image
* adjusted library for fixed/removable media type
* added error granularity to read and write
* added function to set and get error granularity
* adjusted ewfinfo and ewfacquire to handle error granularity
- not needed in ewfacquirestream cannot compensate errors in streams
20070108
* Fixed error in EWFX format header section should be xheader section
* Removed setting value of unknown3 in data section
20070107
* worked on linen6 support
* added EnCase6 and linen6 to automated test
* added get_version function
* fixed errors for handing a write of less data than chunk size
* fixed error in EnCase6/linen6 header string creation
* added 8192, 16384 or 32768 sectors per block size options
* removed signature from hash section
* fixed error in strerror for strerror fallback missing return statement
* fixed error in test statement in configure.ac
20070104
* worked on automated acquirestream test
* fixed error in ewfcommon_read_input for handing a write of less data than chunk size
20070103
* adjusted copyright notice
* worked on EnCase6 support
* corrected error in writing original EWF, EnCase1 and SMART format
20061231
* Fix for ctime_r detection not allowing for ctime fallback in configure script
* Fix for incorrect handling of user provided strings in ewfacquirestream
* Added missing sprintf function check and several precompiler definition changes by Christophe Grenier
* configure and code now handles ctime_r 3rd argument under Solaris
20061230
* Fix for precompiler handling for gcc 2.95 in header_values
* Moved GUID and operating software determination to ewfcommon
* Changed autoconf detection of operating software fallback string
* Added some options to ewfacquirestream
* Fixed error in configure.ac regarding libuuid check
* Added macros for tol and toul, with atol fallback support
20061229
* worked on read and write mode
* removed chunk size buffer restriction from ewfcommon_read_chunk renamed it to ewfcommon_read_input
* removed chunk cache wipe
* several platforms tested
20061228
* added write remaining chunk data for streamed write to libewf_write_finalize
* worked on read and write mode
- added amount_of_chunks to segment table, contains the number of chunks of a segment file
- removed segment_file_offset in handle write, overlap with file_offset in segment table
- fill offset table while writing - removed handle->write->offset and ->amount_of_offsets
- removed handle->write->create_segment_file
20061227
* added pkg-config file (still expirimental)
* added a check to libewf_close to enforce libewf_write_finalize
* moved libewf header files to include/libewf - should fix missing header problem
* worked on read and write mode
- added seek_offset
- added read_buffer - added it to API and libewf man page
- added ewfalter (expirimental)
- rewrote read_chunk not to do its own offset checking
- added write_random
20061226
* worked on read and write mode
- added seek_chunk
20061225
* worked on read and write correction regarding new insight into table sections
* added macro for sprintf fallback
* added configure.ac check for Solaris ctime_r
* rewrite of ewf_string to calculate the byte size for all lengths
* rewrite of common wrapper functions to macro's (memset, memcpy, memcmp, free)
- allow for compiler optimization for functions free, memset, memcpy, memcmp
* worked on streamed write
- added libewf_write_finalize (still expirimental)
- created ewfacquirestream
- added type to section_list_entry
- have write functions set section_list_entries
- basic streamed write mode now working - still needs more testing requiring options set by ewfacquirestream
* corrected error in comment libewf_write_buffer in libewf.h
20061223
* test: full read & write on multiple platforms
* test: different sized buffers for read and write
* check into small segment files for a DVD image - more file handles than allowed will add support for this in the future
* added make lib/library for libewf compilation only
* removed multiple (same) -l<library> from configure
* added check for snprintf (djgpp seems to be missing this function) - will add fallback support to snprintf in the future
* corrected file rights on source files
* added libewf.spec to source package to allow rpmbuild -ta <libewf>
* fixed bug in reading header string 1 byte too little
* libewf now warns if file exceeds the maximimum number of offsets in a table section
* worked on read and write correction regarding new insight into table sections
* added support for the original EWF format
20061219
* Added have config defaulting to libewf.h required for library include
* several adjustments thanks to Christophe Grenier
- manual/libewf.3
- libewf.spec.in
- fix for 4 GiB support for native Windows compilation _lseek => _lseeki64
20061218
* added sys/types for Solaris signal.h include
20061217
* worked on testing for stable release
* fix for NetBSD using zlib 1.1.4 missing compressBound function
* moved factor 2 buffer size enlargement from ewf_string_uncompress into ewf_uncompress this matches behaviour of ewf_compress
* added support for missing ctime_r, localtime_r and strerror_r fallback to ctime, localtime, strerror
* manually added INT64_MAX definition - for platforms missing LLONG_MAX definition
20061216
* worked on testing for stable release
* fixed bug for buffer passthrough exceeding the buffer boundary for compressed chunks
* fixed bug for chunk cache passthrough
* fixed reallocation of chunk cache for chunk cache passthrough
* disabled -Wextra compiler flag for OpenBSD compilation
* removed wcsftime and strftime for platform compatibility - now using snprintf based solution
* fixed EnCase1 format error - contains only 1 header section
* fixed handling of EnCase1 format in strict error mode
* automatic generation of SPEC file thanks to Christophe Grenier
20061213
* worked on testing for stable release
* fixed bug regarding too small copy of date strings
* fixed bug regarding over correcting uncompressed string length
20061212
* Worked on Windows wide character support
* adjusted string copy from/to char to char_t
* finished first version of manpage libewf.3
20061211
* fixed typo in ewfacquire man page acquiry -> acquire
* removed AC_FUNC_MALLOC and AC_FUN_REALLOC from configure.ac
* fixed typo in libewf_includes.h HAVES_ -> HAVE_
* adjusted code for warnings in Windows port
* changed segment number to 16 bit value in read and segment table
* fixed issue with ewfgetopt
* moved utf16 to/from ascii converion functions from ewf_string to libewf_string
* added intermediate macros for wide character support under Windows
* adjusted static string concats
- MVC first executes the macro, after which it tries static string concat
- gcc seems to do this in oposite order
20061209
* added stdint.h support to libewf_includes.h
* changed $build to $target in configure.ac
* added libewf.spec file
* libewf version numbers will not contain a release number any more - no additional value other than for development
* fixed bug in \r detection in parse_header_string - when string length is 0
* adjusted option order in ewfacquire help function - should be alphabetical
* worked on man pages using input provided by Kees Mastwijk
* corrected some small output inconsistencies
20061208
* worked on ewfinfo man page using input provided by Kees Mastwijk
20061207
* worked on calculating a GUID for write
* added GUID get and set functions to libewf
* added GUID check for data section
* added GUID write for encase5 and linen5 format
* ewfacquire now adds random GUID (uuid) for encase5 and time based GUID for linen5 - only if libuuid is present
* ewfacquire added test for block or character device before determining device size
* ewfcommon created generic version function - added library version information
* changed version() to ewfcommon_copyright_fprint()
* worked on ewfacquire man page using input provided by Kees Mastwijk
20061206
* added hypens to GUID output in ewfinfo
* worked on calculating a GUID for write
20061204
* changed configure.in to configure.ac
* moved CFLAGS to configure.ac
* system dection code is now only used to determine the fallback string for ewfacquire
- detection of available functions is now based on header detection
* moved library code to ./libewf and code for the ewftools to ./ewftools and libewf.h to ./include
* removed LIBEWF_H_USED_IN_PACKAGE
* added defines to ewfcommon for different buffer size testing
20061201
* added optimalization definitions - for testing
* implemented chunk cache passthrough
* added configuration parameters for buffer passthrough and chunk cache passthrough
- buffer passthrough does not seem to enhance the performance significantly
- chunk cache passthrough does not seem to enhance the performance significantly
* ewfacquire: ask or determine media type (fixed and removable)
* added EWFX format (expirimental)
- (basically EWF-E01 based format)
- allows for section xheader, which contains header information in XML and is stored in an compressed string
20061130
* problem with media size calculation due to change
- note: uint32_t * uint32_t = uint32_t and will not upscale to uint64_t
* ewf_string: better solution for size*16 in ewf_string_uncompress
- the length starts out with a factor 2 and keeps increasing by a factor 2 until string can be decompressed
* moved process status and summary functions to ewfcommon
* added process summary to ewfexport
* read: will uncompress chunk directly to chunk sized buffers for non compressed chunks
* are both the segment table and section list file descriptor value needed - can this be a single value?
- the file descriptor in the section list was used as safe guard only - removed
* Only use the chunk cache when the input buffer size does not suffice for reading or writing an entire chunk
- the chunk cache actually reduces performance for sequential reads due to additional memcpy - completed
* ewfverify: show status indicator
* ewfverify: when done show time and Mb/s
20061129
* Media size is calculated when not set
* Added -Wextra compile flag for addition warning values
* fixed: weird floating point exception after recompilation of working versions in callback functions
- this was actualy a division by zero in the callback function
* read: added improved support for EnCase linen 5 format
- adjusted libewf_header_values for more flexible header creation
* write: removed the CRC after the offset table for the SMART format
* write: added linen5 support
* header values: removed trailing \r from last header value
* write: fixed error regarding buffer passthrough
* read: will read chunk directly to chunk sized buffers for non compressed chunks
20061128
* worked on performance enhancements
* lseek is now only used if section data needs to be skipped
- in libewf_sections_read_segment
- in libewf_read_chunk - added segment number to offset table and file offset to segment table
for basic offset tracking
* found issues in documentation
- EnCase1 (EWF-E01) format stores its chunks in the table sections not in the sectors section
it uses an EWF-S01 alike layout
- SMART in FTK Imager has a CRC at the end of the offset table
* fixed read and write regarding issues in documentation
* read: fixed error in recognizing FTK imager format
20061127
* worked on performance enhancements
* changed ewf_crc_calculate to make use of zlib's adler32 function instead of algorithm derived of CRC algorithm by Andrew Rosen
- this improves the performance significantly ;-)
* changed libewf_endian functions for improved error handling
* removed memcpy from chunk cache read to data for non compressed data in libewf_read_random
20061126
* worked on performance enhancements
* changed iterator to 32 bit in ewf_crc_calculate saves conversion on a 32-bit platform
20061125
* worked on string and char types
* changed ewf_sectors.[ch] into ewf_chunk.[ch] - chunks do not only reside in sectors sections therefore the name change
* removed ewf_chunk.c - now uses ewf_string functions, moved necessary functions to libewf_string.[ch]
* worked on performance enhancements
* reduced CRC (de)allocations
20061124
* worked on performance enhancements
* added buffer size option to ewfacquire
20061123
* worked on string and char types
* added macros for static char or wchar_t type strings
* note: fgets and fgetws cannot be used on the same stream after one and other
* string: wide character support (wchar support)
- Windows also provides tchar, tchar is a wrapper for both char and wchar_t
* change char* to EWF_CHAR* or LIBEWF_CHAR*
- allow for char and w_char interfacing with library
- use LIBEWF_CHAR for char/w_char wrapping and EWF_CHAR for byte strings in EWF file format, CHAR_T required for wchar_t support in basic functions
- make internal EWF related strings byte strings (EWF_CHAR) - make string functions safe to be char or uint8_t
- use string.x for string functions
* string: added length to libewf_string_search
* string: added length to libewf_string_split
* ewfacquire: added wchar_t support for utsname_buffer.sysname
* ltree: changed ewf_tree_data_read
* ewfinfo: added stored MD5 hash
* ewfacquire: added print read errors on exit
* all: in read and write functions add file_descriptor test - not necessary libewf_common functions do check this
20061122
* worked on string and char types
* windows has: wmain for wide character arguments
* moved getopt code to ewfgetopt for wmain support
* moved glob code to ewfglob
* changed libewf_open to match main and getopt type arguments
* fixed check enable...=no validation - $withval needed to be $enableval
* added CHAR_T and INT_T for wrapping character type of support functions like (w)open
20061121
* worked on string and char types
* fixed: missing ewf_char.h, ewf_string.h and libewf_config_windows.h in package
* changed COPYING and AUTHORS due to license issue
* removed: libewf_common_string_to_uint64 and libewf_common_string_to_int64
* fixed: several compilation errors for wide character type support
* added: strchr to ewfcommon for getopt support
20061119
* worked on string and char types
* changed %s and %c where necessary to PRIs and PRIc
20061118
* worked on string and char types
* string: removed LIBEWF_STRING type definition
* string: removed string_copy_from/to_char functions
* string: added wrapper PRIc for c, lc and PRIs for s, ls
* common: removed strdup - no longer needed - libewf_string_duplicate takes care of this functionality
* common: removed strchr - no longer needed - libewf_string_search takes care of this functionality
* common: removed strncmp - no longer needed - libewf_string_compare takes care of this functionality
* fixed: inconsistency in libewf.h and libewf_file.h
* common: removed strlen - no longer needed - libewf_string_length takes care of this functionality
20061115
* worked on string and char types
* implement libewf_string_copy_(from/to)_header functions
* changed utf16/ascii convert to copy functions
* libewf_string: allow to set multibyte strings from header values - still need to test this
20061114
* worked on string and char types
* implemented non compressed read and write in ewf_string - for ltree tree data
* fixed bug in compression buffer reallocation in ewf_string
- reallocation pointer was not provided backwards
* delay header and header2 conversion to parse function
* moved basic ewf_header2 functions to ewf_char - ewf_header2 has become a type wrapper
* string: make a more generic ewf_string (use this in ewf_header, ewf_header2, ewf_ltree) also move ASCII and UTF
20061113
* worked on string and char types
* ewf_string removed several functions
* moved basic ewf_header functions to ewf_char - ewf_header has become a type wrapper
20061112
* worked on string and char types
* header_values: rewrite libewf_header_values_set_value to return integer with status code
* moved md5hash to string function to libewf_string
* moved ewf_section_fprint and ewf_header_fprint to libewf_debug
20061111
* ewfexport: added time estimate
* moved byte print function to ewfcommon
* added API functions to retrieve header values
* string: add string copy
* string: add string copy to char/w_char types
20061110
* Fixed strerror_r char * return type on Ubuntu
20061109
* Fixed several logical bugs in write_buffer
- incorrect check of chunk cache passthrough
- incorrect handling of buffer sizes
- incorrect handling of last buffer write
* Fixed bug in ewfexport adding 128 bytes
- due to print output to stdout
* Fixed output write libewf_write_test_segment_file_full
* ewfacquire: added time estimate
* libewf_common_open: added check for return values _sopen_s
20061029
* Worked on clean up of includes in libewf.h
* Created API functions to get and set the header values - this moves the header values dependency out of the ewftools
* Moved verbose into library, also added notify stream
- windows port: allow error output stream redirection (libewf_notify) requires Visual C/C++ /MD compilation flag
* Fixed a memory leak in ewf_header_read - the compressed header was not freed
* Added alternative compile time method for platform determination when uname() is missing
* Fixed error in handling if AES crypt provider is not available
* Moved the error handling values out of the library - no longer contains read chunk function
* Added basic globbing code for windows port - should suffice
* Fixed memory leak of last section in libewf_read_build_index
* Fixed memory leak in ewfacquire bytes_string was never freed
20061028
* Merged the libewf win32 port by George Garner with current working verion
- signal handling and memory debug was added to ewfsignal
- added libewf.c for MainDLL function
20061026
* moved header_values_fprint to ewfcommon
* created libewf_parse_header_values
* moved from_ and to_file_descriptor functions out of the library and into ewfcommon
* rewrite of from_ and to_file_descriptor functions in ewfcommon and related library functions
* moved swap byte pair functions back into library
* fixed header value creation is date strings are missing
* added function to set media type in handle
20061025
* made one type (error sector) for crc and acquiry read error sectors
* Worked on Win32 native port
- fix for file open - not using the right parameters for Windows
- fix for crypto API calls for MD5 context
- rewrote some API functions to pass buffers from the application to the library
so allocation and de-allocation is handled within the same program space
20061024
* minor alterations for BSD licensed getopt
* added a libewf version of getopt to ewfcommon - it is basically a rewrite of the version
by The Regents of the University of California - it should suffice for platforms without getopt
* prefixed functions in ewfcommon with ewfcommon - this distinguishes them from the libewf functions
* created acquiry_error to move error2 and endian conversion in ewfcommon into library
* fixed missing read error retry reset after sector skip
* fixed 1024 kb human readable size will now become 1.0 Mb
* default number of read error retries is now 2 (will result in 3 read attempts)
* fixed error regarding read error retry one off
20061023
* Reduced input_file_size and input_write_size to 1 parameter: input_write_size
* Renamed ewf_file_size to segment_file_size
* Looked at generic character/string wrapper - for wide char support
20061022
* Fixed media type mismatch in data section in EWF file from ewfacquire for EWF-E01 format
* Fixed empty section start size in EnCase (EWF-E01) format for read and write - FTK Imager
* Fixed error in read with byte swap, the MD5 hash must be calculated over the non swapped data
* Clean up in libewf.h
* Worked on Win32 native port
- added LIBEWF_EXTERN macro for DLL import/export
- changed ctime to libewf_common function using the thread safe variant
* Added libewf_set_write_input_size function
* libewf and tools are now compilable natively on Windows
20061021
* Worked on Win32 native port
- changed libewf_common_strncmp return to signed as it should be
- changed strerror to libewf_common function using the thread safe variant
- changed localtime to libewf_common function using the thread safe variant
- requires some type casts from unsigned to signed - the libewf_common read and write function do the check if the size
value exceeds INT32_MAX
- rewrote ewf_md5hash_to_string() not to use snprintf
- rewrote libewf_md5 to wrap multiple implementations is now libewf_md5_context
- added Windows Crypto API support to libewf_md5_context
* Reduced maximum amount in offset table to 32-bit value
* Reduced segment values to a 16-bit value
* Changed libewf_notify to use autoconf/make header check
20061020
* Worked on rewriting libewf_write
- when header values are empty a default is created
- better fill EWF-S01 segment file - recalculate the chunks per segment after the table section is written
20061019
* Block is only required to be wiped when offset is 0
* Worked on rewriting libewf_write
- moved header values set and create to libewf_handle
- removed set_parameter function
* Fixed mismatch in segment size and chunks section size calculation for the EWF-S01 format
* Fixed invalid number of chunks per segment for 2 GiB segment file for the EWF-S01 and EWF-E01 format
* Added maximum input size check
* Added a generic set function for enabling byte swap
* Completed redesign write and parameter functions to fallback to a default
20061018
* fixed error catching negative remaining segment size
* worked on: redesign write and parameter functions to fallback to a default
* Worked on rewriting libewf_write
20061017
* fixed error handling multiple segment files - the write_buffer loop now leaves the segment file in a state
of an open chunks section
* changed space left function into test full functions
* implemented compressBound() for determing the required size a too small compression buffer
* allow for a variable buffer size in write_buffer by using a chunk cache size and offset
* ewf_header_compress: is there a better way to determine the size of the compressed buffer - compressBound fixes this
* done: redesign handle, refactor certain aspects to sub structs like chunk_cache
* worked on: redesign write and parameter functions to fallback to a default
* Worked on rewriting libewf_write
20061016
* at last done rewritting libewf_write_from_file_descriptor to use new function libewf_write_buffer
* changed handle->write->chunks_per_segment and handle->write->maximum_chunks_per_segment
* progressive method of number of chunks per section/segment is required for EWF-E01 fill method
* calculative method of number of chunks per section/segment is required for EWF-S01 pre-write offset table size determination
* Worked on rewriting libewf_write
20061015
* corrected typo in src/Makefile.am
* fixed libewf.h to be used from within the libewf package and outside
* fixed maximum ewf file size in ewfacquire was 1 byte too large - due to new restriction in libewf
* Worked on rewriting libewf_write
* fixed remainder > 9 issue - using a naive solution but adequate
20061014
* ewfinfo: move error2 list print code into library - to ewfcommon
* ewfverify: move crc list print code into library - to ewfcommon
* write: fixed incorrect implementation of EnCase1 header
* ewfinfo: move format detection code into library - basic file format detection is now in library
a small part still in ewfinfo, this because EnCase2 and EnCase3 format look a lot each other
* added function to create original header format
* rewritten function to create headers to 3 more generic functions - for header2 not needed yet
* Worked on rewriting libewf_handle
* Worked on rewriting libewf_write
* Added API get function for certain information
* Renamed sector_count => amount_of_sectors
* Renamed chunk_count => amount_of_chunks
* Renamed error_count => amount_of_errors
* fixed textual error in ewf_sectors_chunk_compress
20061012
* moved EWF definitions to ewf_definitions.h
* moved PRIx fixes to libewf_includes.h
20061011
* ewfinfo: add date format in ewfinfo to month in text - no interpretation differences possible
ISO8601 date string support added - based on patches/adjustments by Rob Meijer
* Rewritten part of header_values for new date format
* Added date format support to ewfinfo
* fixed a space in configure output
* Worked on rewriting libewf_write
* Worked on rewriting libewf_handle - introduced new read and write specific subhandles
* removed compression_used from handle - no longer needed
* added error_granularity_bytes to write subhandle
20061010
* Worked on rewriting includes to use libewf_includes.h
* Removed __attribute__((packed)) from structs for Win32 port - they do not seem neccessary anymore
* Added the header file installation - based on patches/adjustments by Rob Meijer
* read: warn when maximum offsets in table of S01 format is exceeded
* Worked on rewriting libewf_write
20061009
* Added libtool support - based on patches/adjustments by Rob Meijer
* Changed config.h to src/libewf_config.h
* Added libewf_includes.h to wrap libewf_config.h for beter autoconf/automake integration
* Worked on rewriting includes to use libewf_includes.h
20061008
* Changed program banner and version information
* Version released
20061007
* Fix for missing header definitions for OpenBSD
* Fix for missing INTx_MAX definitions for OpenBSD
* Fix for compilation warnings for SunOS - moved libewf_common.h to be first include
* Bug in reallocating chunk cache - initial reallocation was removed by rewrite
* change chunk cache allocated_size to 32 bit value - also chunk size in read function
20061004
* Tested ewfacquire with disk with 0 sector error - success
* Bug in MacOS-X reading a floppy with bad block - read with -1 could alter current file offset (determined by lseek)
Added lseek check to check and correct for offset drift
20061003
* fixed one-too-many read error retry
* fixed bug not correcting bytes_to_read in read error handling - this surfaced on MacOS-X (Linux read behavior is different)
* ewfacquire: minor adjustment in output - removed dot
20061002
* fixed error in libewf_section.h - this surfaced on MacOS X
20061001
* disabled lvf support
* fixed error in read error handling in write functionality - this surfaced under FreeBSD
20060929
* did some refactoring of write function
20060928
* did some refactoring of write function
* ewfacquire: print MD5 hash when completed - added
removed index build check from libewf_data_md5hash function - this function checks if hash is set ananyway
20060927
* minor adjustment to verbose logging configure options - fixed error with variable names containing '-'
* all: human readable size add .0 for single digit values - implemented
* fixed bug with missing config.h for sleuthkit integration
* fixed some formatting issues
* did some refactoring of write function
* defaulted handle values to unknowns
* added function to determine header length instead of strlen - this is more appropiate
20060926
* minor adjustment to verbose logging configure options
* added program version to output
* did some refactoring of write function - added more checks for write_count returns
* write: warn before hand if segment file amount exceeds limit - implemented
* all: human readable size add .[1-9] for single digit values - implemented
20060922
* worked on ltree
* fixed error in verbose output CRC value libewf_read_random - checked if bug resides in other CRC output - could not find any
* changed values in volume definition
20060916
* worked on code clean up and improved error handling
* ewf_verify now generates CRC error list for sectors (also for compressed chunks)
* verbose and debug prints are now optional (defaults are off)
20060912
* worked on code clean up and improved error handling
* worked on skip beyond media size in write
20060911
* worked on code clean up and improved error handling
* changed hardcoded max values to predifined macros
20060910
* worked on code clean up and improved error handling
* renamed file_read and file_write to read and write
* ewfacquire: add offset and size question
* write: add offset and size support in write function
* added lseek to common, removed off_t from code
* ewfacquire: added nice byte print for status
* ewfexport: added nice byte print for status
20060908
* worked on code clean up and improved error handling
* worked on ltree implementation
* added simple byte order detection to UTF16 to ASCII conversion
* added offset and size question to ewfexport
* added size and offset to read to and write from file descriptor functions
* read: look at libewf_section_volume_read: volume chunk count is 0 - compensating
- check removed no longer required due to LVF support
20060906
* worked on code clean up and improved error handling
* ewf tooling returns the error status no exit
* worked on improving automated test scripts
* corrected user input inconsistency in ewfacquire
* fixed free bug with zlib_crc and calculated_crc in write
* fixed pointer bug with zlib_crc in write
20060905
* worked on code clean up and improved error handling
* added large file support to configure.in for converting raw images > 4 GiB to EWF files
* ewfacquire added total acquire time and bytes/second
20060904
* worked on code clean up and improved error handling
* fixed bug regarding setting chunk size in handle from volume - this got somehow removed due to clean up
* ewfacquire: add start and finish time
20060903
* worked on code clean up and improved error handling
* moved section reading and writing code to libewf_section
* fixed bug in libewf_read_random when offset is too large
* wraped basic library calls in preperation of thread safety of library calls
* added prefix to functions in libewf_common with common_
* enhanced error handling - no program exit but a nice return
* using typedefs instead of defines
* due to 20060505 fix, gave all value definitions a default value
* removed a large number of unrequired includes
20060902
* worked on code clean up and improved error handling
* libewf_handle_cache_realloc removed from read volume section function
* endian functions are prepended with libewf_endian_
* the secondairy offset table in handle for S01 format will no longer be allocated for read
* started on error tollerance levels for recovery
* moved file descriptor check in last_offset calculation to do one check per section list
- section list was altered to be used for a single segment file only - reduces memory requirements
20060831
* worked on code clean up and improved error handling
* created seperate structure for chunk cache
20060830
* worked on code clean up and improved error handling
* allow to set clean value in libewf_(re)alloc_cleared functions
20060829
* worked on code clean up and improved error handling
* worked on libewf_string - moved split code to it
20060828
* worked on code clean up and improved error handling
* introduced and fixed new bug - reminder do not free result from localtime()
20060826
* worked on code clean up and improved error handling
* fixed realloc calculation bug in file_read
* moved definitions from .h files
* changed headers in all files
20060824
* worked on code clean up and improved error handling
* move crc check from file_read into different EWF read methods?
no embedding this check in the segment types makes it more difficult
to generate an CRC error list for ewfinfo
20060823
* no need for fatal warnings if code becomes re-entrant after error
* added a wrapper of basic library calls
* worked on code clean up and improved error handling
* renamed notify.* to libewf_notify.* prevents name clashes
* ewf_crc function now use a dynamic allocated CRC - this helps with error propagation
* added big endian support to ascii to utf16 routine
20060822
* added byte swap (equivalent of dd conv=swab) functionality in both read and write
* changed sys/types.h to inttypes.h
all: check if sys/types definitions still needed in ewf_*.h files ? - not under linux will do a cross platform test anyway
* started with implementing improved error handling and re-entry after error,
combined with code clean up, better error control, revision of header to allow for one place to maintain acknowledgements
20060821
* read: added basic support for L01 files, which are basically EWF files
* renamed ewf_file_signature to evf_file_signature - closer to the truth
* ewfacquire: compensate for maximum S01 file size in ewf file size question - determine maximum
- not relevant because there is a maximum of chunks within the file but the
other data could grow to the 2 GiB
20060820
* ewfacquire: small change to confirmation
20060819
* lifted the 255 segment file limit on write, however it uses an (horrible) increment based naming scheme much like EnCase
write: allow more than 255 segment files - completed
* write: worked on SMART (EWF-S01) support
* write: SMART (EWF-S01) - build in support for table2
* all: add SMART support - complete
* worked on - all: due to 20060505 fix give all value definitions a default value - looks nicer
* due to changes to the read and write logic the library was retested
* read: error in percentage in libewf_read_random - works on FC5
* table size limitation does not seem present in EWF-E01 only in EWF-S01
* use autoconf/automake cross compilation parameters for platform determination - completed
20060818
* read: worked on SMART (EWF-S01) support
* alternative read method was removed, the assumption it was based on is no longer valid
read: remove alternative read method the assumption behind is fails for the SMART format - completed
* renamed alternative write method to wipe block on read error
write: rename the alternative write method to wipe_block_on_error (or something) - completed
* read random: chunk based size check now is a buffer based size check
* removed handle->chunk_crc no longer needed
* for the EWF-S01 format the entries in table2 are appended to the offset table - have yet to test a file with a table2 section
* write: worked on SMART (EWF-S01) support
20060817
* read: worked on SMART (EWF-S01) support
20060816
* ewfacquire: add overview to confirm user input, otherwise restart input query - completed
* ewfacquire: make encase5 file option default - completed
* fixed incorrect order for values in header2 on write - also in documentation
20060812
* made the number of read error retries flexible and user adjustable through ewfacquire
* correction of "int result" in file_write to be C89 code compliant
* new file size algorithm to fill up closer to max file size when compressing
write: change algorithm to fill files upto file size - completed
* added empty block compression
write: always compress empty chunks - completed as an option
20060809
* fixed size bug for large images on Cygwin - fix of 20060610 not sufficient for Cygwin
* fixed invalid value in printf volume read verbose messages
* added autoconf/automake structure
20060708
* renamed endian.h to libewf_endian.h for compatibility issues
20060617
* put conditions around debug code in eqfacquire
20060611
* fixed - one off bug in header value end of string
20060610
* ewfacquire test on multiple platforms
* added support for SMART format volume section - equals the original EWF volume section definition
* fixed - type casting error in data size
* fixed - missing header for encase1 format in write
* fixed - bug in writing encase4 and encase5 header2 in write - error in ascii to utf16 routine
* fixed - bug in writing encase4 and enacse5 header in write - logical formatting error
* write: timestamp is now generated only once
* write: fixed incorrect free in header values
* write: fixed memory corruption bug in ewfacquire - required explicit zero of string
20060605
* fix of data corruption bug - one off
* ewfacquire: sanitize input provided by user
* ewfinfo/eqwfacquire ? 1970 date when no case data is provided - bug in split function regarding first empty value
* removed file cache - no longer required
20060527
* started analysis of a data corruption bug
20060526
* fixed write bug when read is successful after error with small error granualirity
* fixed write bug with error granularity 1
* ewfacquire: add chunk size input possibility
* ewfacquire: add error granularity size input possibility
* ewfacquire: memory corruption bug in user input - repaced some code - looks OK now - but hard to reproduce
* fixed write bug with block size 128 error granularity 16 in test
* write: improve reading of bad sectors and writing a error2 section to file for encase5 file option
20060520
* fixed media size bug - old method of calculation was still in there :-(
* worked on ewfacquire read on error
* added alternative write method to test acquired images against existing tooling
* ewfacquire: able to produce exact media data as linen
* write: what if read error is in last chunk and it is smaller than chunk size !?
20060517
* removed duplicate include from notify.c
20060516
* added media size to ewfinfo
* worked on ewfacquire read on error
20060513
* minor adjustment in libewf.h - ewf_close renamed to libewf_close
20060505
* Fix for older compilers like gcc 2.95 - rewrite to older C statements
20060424
* added warning macro to allow overriding some fatal errors
* allow overriding invalid CRC's
* refactored crc check in ewf_section to file_read - for scope of handle and uniformity within the code
* further analysis of unknown values in hash section - also found difference in signature value Encase4 and Encase5
20060423
* Fix for Solaris in definitions.h
20060422
* Fixed missing PRI definitions on OpenBSD - now defines in definitions.h
* changed sprintf to snprintf
* added device size determination for OpenBSD
* fixed bug in header values parsing for empty first value empty
* added compression level definition
* ewfinfo: add compression media information in ewfinfo - Encase5 format only
* write: moved compression type functionality from ewfacquire into library
20060419
* Adjusted write method - to fix filesize problem
* Correction of verbose print of last chunk number
* the write function works only when a data section is at the start of the file - why ? not a bug in write
but in read the first offset in the segment table was filled with 0 instead of 13 which is the size
of the file header
20060418
* Tested on FreeBSD 6.0 needed to add include header in ewf_sectors.h
* Adjusted Make to be more generic and to work on FreeBSD 6.0
20060415
* changed u_int to uint
* removed LIBEWF_ types
* zlib uses a long which varies per 32 and 64 bit architecture using an intermediate variable
fixes not able to read compressed images on a x86_64 architecure
* Memory corruption bug in segment table filename fixed
20060414
* Fixed previous offset size
* removed memcpy assignments
* type fixed malloc assignments
* removed (void *) from memset
* reduced the number of int definions
* changed printf formaters
* added status indication to ewfexport using callback function in read_from_file_descriptor
* added quiet option to ewfexport and ewfacquire
* removed dependency on libiconv - created a naive utf16 to ascii conversion
* moved header string generation code to header_values
* added time string generation code to header_values
* added acquire options for compression and file type to ewfacquire
* code now partially fixed for x86_64 systems fixed malloc statement, printf sizes, and some type definitions
* additional changes to memcpy statements made
* Use header_values for write
* ewfacquire fix error print on correct fixed value
* ewfacquire fix for empty input values
* ewfacquire fix strange image file rights
* ewfacquire fix image filename weird characters - one byte off allocation problem in ewfacquire
* ewfacquire allow for a default value - for fixed values
* ewfacquire can now acquire devices on works on Mac OS-X/Darwin
* fix write crc error in chunk on mac os x
* ewfacquire add EWF file size input possibility - check upper bound 2 GiB, lower bound 1440k
* fix write bug with small file size 1440k - for floppy image - this has to do if
both the filesize and the ewf size are the same - write will adjust with one additional segment file
20060413
* Used LIBEWF_VERSION in executables
* Added file signature function to library for integration in The SleuthKit
* Added md5.h for allowing to do with different MD5 calculation code bases
like the one integrated in the The SleuthKit
20060412
* Created separate file for header value logic - moved code from ewfinfo
20060411
* Nearing release of first version, so started logging relevant changes
* Removed memory leak with duplicate header assignment to handle
* Renamed ewfmd5sum to ewfverify - still have to enhance functionality
* Renamed ewfcat to ewfexport - still have to enhance functionality
* Added time parsing functionality to ewfinfo - date format is currently fixed in MM/DD/YYYY
* Enhanced password and compression header value output in ewfinfo
|