CANConfigPython 0.1.0a1__py3-none-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- canconfigpython/__init__.py +7 -0
- canconfigpython/__main__.py +3 -0
- canconfigpython/cli.py +111 -0
- canconfigpython/client.py +243 -0
- canconfigpython/commands.py +57 -0
- canconfigpython/errors.py +19 -0
- canconfigpython/resources/docs/native-source.tar.gz +0 -0
- canconfigpython/resources/docs/user-guide.en.md +274 -0
- canconfigpython/resources/docs/user-guide.zh-CN.md +265 -0
- canconfigpython/resources/skill/canconfig-python/SKILL.md +71 -0
- canconfigpython/resources/skill/canconfig-python/agents/openai.yaml +4 -0
- canconfigpython/resources/skill/canconfig-python/assets/changes.schema.json +832 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/bridge_dual_rates.json +18 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/bridge_mapping.json +13 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/cancom_115200_8n1.json +10 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/cancom_format_crc.json +8 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/cancom_gap.json +8 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/cancom_transparent_id.json +10 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/fb_1m.json +12 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/fb_500k.json +12 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/fb_adaptive_single.json +7 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/fb_return_manual.json +22 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/fb_silent_adaptive_option.json +7 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/filter_blacklist.json +7 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/filter_mask.json +12 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/filter_range.json +12 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/hub_h_external.json +13 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/hub_input_filter.json +13 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/hub_l_external.json +13 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/hub_mapping.json +46 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/hub_routing.json +8 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/index.en.md +55 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/index.json +661 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/index.zh-CN.md +55 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/negative/adaptive_mixed.json +8 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/negative/hub_missing_ps.json +12 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/negative/restricted_inheritance.json +12 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/negative/short_user_data.json +7 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/negative/string_numeric_id.json +7 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/negative/unknown_field.json +7 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/negative/unsupported_adaptive.json +7 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/negative/wrong_uid.json +7 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/rpt_adaptive_all.json +12 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/rpt_silent.json +7 -0
- canconfigpython/resources/skill/canconfig-python/assets/examples/user_data.json +7 -0
- canconfigpython/resources/skill/canconfig-python/references/operations.md +68 -0
- canconfigpython/resources.py +17 -0
- canconfigpython/runtime/Qt5Core.dll +0 -0
- canconfigpython/runtime/Qt5Network.dll +0 -0
- canconfigpython/runtime/Qt5SerialPort.dll +0 -0
- canconfigpython/runtime/WIICAN.dll +0 -0
- canconfigpython/runtime/canconfigconsole.exe +0 -0
- canconfigpython/runtime/libgcc_s_dw2-1.dll +0 -0
- canconfigpython/runtime/libstdc++-6.dll +0 -0
- canconfigpython/runtime/libwinpthread-1.dll +0 -0
- canconfigpython/runtime/manifest.json +19 -0
- canconfigpython/runtime.py +61 -0
- canconfigpython-0.1.0a1.dist-info/GPL-3.0.txt +674 -0
- canconfigpython-0.1.0a1.dist-info/LICENSE +21 -0
- canconfigpython-0.1.0a1.dist-info/METADATA +197 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-LICENSE.txt +866 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-LICENSE.FDL.txt +450 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-LICENSE.GPL2.txt +339 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-LICENSE.GPL3-EXCEPT.txt +704 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-LICENSE.GPL3.txt +674 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-LICENSE.GPLv3.txt +686 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-LICENSE.LGPL3.txt +165 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-LICENSE.LGPLv21.txt +514 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-LICENSE.LGPLv3.txt +175 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-LICENSE.PREVIEW.COMMERCIAL.txt +626 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__angle__LICENSE.txt +32 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__angle__src__libANGLE__renderer__d3d__d3d11__dxgi_support_data.json.txt +1164 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__angle__src__libANGLE__renderer__d3d__d3d11__load_functions_data.json.txt +1116 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__angle__src__libANGLE__renderer__d3d__d3d11__swizzle_format_data.json.txt +77 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__angle__src__libANGLE__renderer__d3d__d3d11__texture_format_data.json.txt +692 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__angle__src__third_party__compiler__LICENSE.txt +22 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__angle__src__third_party__murmurhash__LICENSE.txt +2 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__double-conversion__LICENSE.txt +26 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__easing__easing.cpp.txt +670 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__easing__legal.qdoc.txt +35 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__forkfd__forkfd.c.txt +875 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__forkfd__forkfd.h.txt +66 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__forkfd__forkfd_gcc.h.txt +63 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__freebsd__0001-Patch-the-FreeBSD-strto-u-ll-functions-to-work-insid.patch.txt +151 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__freebsd__strtoll.c.txt +134 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__freebsd__strtoull.c.txt +112 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__freetype__docs__LICENSE.TXT.txt +37 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__freetype__src__tools__no-copyright.txt +61 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__freetype__src__tools__update-copyright-year.txt +135 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__freetype__src__tools__update-copyright.txt +14 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__harfbuzz-ng__COPYING.txt +36 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__harfbuzz__COPYING.txt +24 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__libpng__LICENSE.txt +112 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__md4__md4.cpp.txt +265 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__md4__md4.h.txt +31 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__md5__md5.cpp.txt +247 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__md5__md5.h.txt +48 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__pcre__COPYING.txt +5 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__pcre__LICENCE.txt +93 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__rfc6234__patches__0001-Fix-compilation-MSVC-warning-in-3rdparty-rfc6234.patch.txt +86 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__rfc6234__sha-private.h.txt +28 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__rfc6234__sha.h.txt +357 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__rfc6234__sha224-256.c.txt +583 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__rfc6234__sha384-512.c.txt +1034 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__sha1__sha1.cpp.txt +261 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__sha3__KeccakF-1600-32-rvk.macros.txt +555 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__sha3__KeccakF-1600-32.macros.txt +26 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__sha3__KeccakF-1600-64.macros.txt +728 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__sha3__KeccakF-1600-int-set.h.txt +6 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__sha3__KeccakF-1600-interface.h.txt +46 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__sha3__KeccakF-1600-opt32-settings.h.txt +4 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__sha3__KeccakF-1600-opt32.c.txt +524 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__sha3__KeccakF-1600-opt64-settings.h.txt +7 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__sha3__KeccakF-1600-opt64.c.txt +512 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__sha3__KeccakF-1600-unrolling.macros.txt +124 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__sha3__KeccakNISTInterface.c.txt +82 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__sha3__KeccakNISTInterface.h.txt +70 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__sha3__KeccakSponge.c.txt +266 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__sha3__KeccakSponge.h.txt +80 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__sha3__brg_endian.h.txt +142 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtbase-src__3rdparty__xkbcommon__COPYING.txt +188 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtserialport-LICENSE.FDL.txt +450 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtserialport-LICENSE.GPL2.txt +339 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtserialport-LICENSE.GPL3-EXCEPT.txt +704 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtserialport-LICENSE.GPL3.txt +674 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtserialport-LICENSE.GPLv2.txt +292 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtserialport-LICENSE.GPLv3.txt +686 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtserialport-LICENSE.LGPL3.txt +165 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtserialport-LICENSE.LGPLv21.txt +514 -0
- canconfigpython-0.1.0a1.dist-info/Qt-5.7.1-qtserialport-LICENSE.LGPLv3.txt +175 -0
- canconfigpython-0.1.0a1.dist-info/RECORD +165 -0
- canconfigpython-0.1.0a1.dist-info/THIRD_PARTY_NOTICES.md +69 -0
- canconfigpython-0.1.0a1.dist-info/WHEEL +5 -0
- canconfigpython-0.1.0a1.dist-info/entry_points.txt +3 -0
- canconfigpython-0.1.0a1.dist-info/gcc-COPYING.RUNTIME.txt +73 -0
- canconfigpython-0.1.0a1.dist-info/gcc-COPYING3.LIB.txt +165 -0
- canconfigpython-0.1.0a1.dist-info/gcc-COPYING3.txt +674 -0
- canconfigpython-0.1.0a1.dist-info/linux-libc6-copyright.txt +529 -0
- canconfigpython-0.1.0a1.dist-info/linux-libcap2-copyright.txt +112 -0
- canconfigpython-0.1.0a1.dist-info/linux-libcom-err2-copyright.txt +403 -0
- canconfigpython-0.1.0a1.dist-info/linux-libdouble-conversion3-copyright.txt +41 -0
- canconfigpython-0.1.0a1.dist-info/linux-libgcc-s1-copyright.txt +1532 -0
- canconfigpython-0.1.0a1.dist-info/linux-libglib2.0-0t64-copyright.txt +1250 -0
- canconfigpython-0.1.0a1.dist-info/linux-libgssapi-krb5-2-copyright.txt +1374 -0
- canconfigpython-0.1.0a1.dist-info/linux-libicu74-copyright.txt +49 -0
- canconfigpython-0.1.0a1.dist-info/linux-libk5crypto3-copyright.txt +1374 -0
- canconfigpython-0.1.0a1.dist-info/linux-libkeyutils1-copyright.txt +52 -0
- canconfigpython-0.1.0a1.dist-info/linux-libkrb5-3-copyright.txt +1374 -0
- canconfigpython-0.1.0a1.dist-info/linux-libkrb5support0-copyright.txt +1374 -0
- canconfigpython-0.1.0a1.dist-info/linux-libpcre2-16-0-copyright.txt +122 -0
- canconfigpython-0.1.0a1.dist-info/linux-libpcre2-8-0-copyright.txt +122 -0
- canconfigpython-0.1.0a1.dist-info/linux-libqt5core5t64-copyright.txt +2932 -0
- canconfigpython-0.1.0a1.dist-info/linux-libqt5network5t64-copyright.txt +2932 -0
- canconfigpython-0.1.0a1.dist-info/linux-libqt5serialport5-copyright.txt +134 -0
- canconfigpython-0.1.0a1.dist-info/linux-libstdc++6-copyright.txt +1532 -0
- canconfigpython-0.1.0a1.dist-info/linux-libudev1-copyright.txt +287 -0
- canconfigpython-0.1.0a1.dist-info/linux-libzstd1-copyright.txt +123 -0
- canconfigpython-0.1.0a1.dist-info/linux-packages.json +102 -0
- canconfigpython-0.1.0a1.dist-info/linux-zlib1g-copyright.txt +84 -0
- canconfigpython-0.1.0a1.dist-info/mingw-w64-COPYING.MinGW-w64-runtime.txt.txt +240 -0
- canconfigpython-0.1.0a1.dist-info/mingw-w64-COPYING.MinGW-w64.txt.txt +135 -0
- canconfigpython-0.1.0a1.dist-info/mingw-w64-COPYING.txt +43 -0
- canconfigpython-0.1.0a1.dist-info/qt-source-notices.json +278 -0
- canconfigpython-0.1.0a1.dist-info/top_level.txt +1 -0
- canconfigpython-0.1.0a1.dist-info/winpthreads-COPYING.txt +57 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
eval '(exit $?0)' && eval 'exec perl -wS -i "$0" ${1+"$@"}'
|
|
2
|
+
& eval 'exec perl -wS -i "$0" $argv:q'
|
|
3
|
+
if 0;
|
|
4
|
+
|
|
5
|
+
# Copyright 2015 by
|
|
6
|
+
# Werner Lemberg.
|
|
7
|
+
#
|
|
8
|
+
# This file is part of the FreeType project, and may only be used, modified,
|
|
9
|
+
# and distributed under the terms of the FreeType project license,
|
|
10
|
+
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
|
11
|
+
# indicate that you have read the license and understand and accept it
|
|
12
|
+
# fully.
|
|
13
|
+
|
|
14
|
+
# [Note: This script is expected to be called by the shell, which in turn
|
|
15
|
+
# calls perl automatically. The nifty start-up code above is based on
|
|
16
|
+
# gnulib's `update-copyright' script; it is a more portable replacement for
|
|
17
|
+
# the shebang, using the first `perl' program in the shell's path instead.]
|
|
18
|
+
|
|
19
|
+
# Usage:
|
|
20
|
+
#
|
|
21
|
+
# update-copyright-year file1 [file2 ...]
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
# This script handles copyright entries like
|
|
25
|
+
#
|
|
26
|
+
# Copyright 2000 by
|
|
27
|
+
# foobar
|
|
28
|
+
#
|
|
29
|
+
# or
|
|
30
|
+
#
|
|
31
|
+
# /* Copyright 2000, 2001, 2004-2007 by */
|
|
32
|
+
# /* foobar */
|
|
33
|
+
#
|
|
34
|
+
# and replaces them uniformly with
|
|
35
|
+
#
|
|
36
|
+
# Copyright 2000-2015
|
|
37
|
+
# foobar
|
|
38
|
+
#
|
|
39
|
+
# and
|
|
40
|
+
#
|
|
41
|
+
# /* Copyright 2000-2015 by */
|
|
42
|
+
# /* foobar */
|
|
43
|
+
#
|
|
44
|
+
# (assuming that the current year is 2015). As can be seen, the line length
|
|
45
|
+
# is retained if there is non-whitespace after the word `by' on the same
|
|
46
|
+
# line.
|
|
47
|
+
|
|
48
|
+
use strict;
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
my (undef, undef, undef,
|
|
52
|
+
undef, undef, $year,
|
|
53
|
+
undef, undef, undef) = localtime(time);
|
|
54
|
+
$year += 1900;
|
|
55
|
+
|
|
56
|
+
my $replaced = 0;
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
# Loop over all input files; option `-i' (issued at the very beginning of
|
|
60
|
+
# this script) makes perl edit them in-place.
|
|
61
|
+
while (<>)
|
|
62
|
+
{
|
|
63
|
+
# Only handle the first copyright notice in a file.
|
|
64
|
+
if (!$replaced)
|
|
65
|
+
{
|
|
66
|
+
# First try: Search multiple copyright years.
|
|
67
|
+
s {
|
|
68
|
+
(?<begin>.*)
|
|
69
|
+
Copyright
|
|
70
|
+
(?<space1>\ +)
|
|
71
|
+
(?<first>[12][0-9][0-9][0-9])
|
|
72
|
+
(?<middle>.+)
|
|
73
|
+
(?<last>[12][0-9][0-9][0-9])
|
|
74
|
+
(?<space2>\ +)
|
|
75
|
+
by
|
|
76
|
+
(?<space3>\ *)
|
|
77
|
+
(?<end>.*)
|
|
78
|
+
}
|
|
79
|
+
{
|
|
80
|
+
# Fill line to the same length (if appropriate); we skip the middle
|
|
81
|
+
# part but insert two spaces and `-'.
|
|
82
|
+
my $space = length($+{space1}) - 1
|
|
83
|
+
+ length($+{middle}) - 1
|
|
84
|
+
+ length($+{space2}) - 1
|
|
85
|
+
+ length($+{space3});
|
|
86
|
+
|
|
87
|
+
print "$+{begin}";
|
|
88
|
+
print "Copyright\ $+{first}-$year\ by";
|
|
89
|
+
print ' ' x $space if length($+{end});
|
|
90
|
+
print "$+{end}\n";
|
|
91
|
+
$replaced = 1;
|
|
92
|
+
}ex
|
|
93
|
+
||
|
|
94
|
+
# Second try: Search a single copyright year.
|
|
95
|
+
s {
|
|
96
|
+
(?<begin>.*)
|
|
97
|
+
Copyright
|
|
98
|
+
(?<space1>\ +)
|
|
99
|
+
(?<first>[12][0-9][0-9][0-9])
|
|
100
|
+
(?<space2>\ +)
|
|
101
|
+
by
|
|
102
|
+
(?<space3>\ *)
|
|
103
|
+
(?<end>.*)
|
|
104
|
+
}
|
|
105
|
+
{
|
|
106
|
+
# Fill line to the same length (if appropriate); we insert two
|
|
107
|
+
# spaces, a `-', and the current year.
|
|
108
|
+
my $space = length($+{space1}) - 1
|
|
109
|
+
+ length($+{space2}) - 1
|
|
110
|
+
+ length($+{space3})
|
|
111
|
+
- (length($year) + 1);
|
|
112
|
+
|
|
113
|
+
print "$+{begin}";
|
|
114
|
+
print "Copyright $+{first}-$year by";
|
|
115
|
+
# If $space is negative this inserts nothing.
|
|
116
|
+
print ' ' x $space if length($+{end});
|
|
117
|
+
print "$+{end}\n";
|
|
118
|
+
$replaced = 1;
|
|
119
|
+
}ex
|
|
120
|
+
||
|
|
121
|
+
# Otherwise print line unaltered.
|
|
122
|
+
print;
|
|
123
|
+
}
|
|
124
|
+
else
|
|
125
|
+
{
|
|
126
|
+
print;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
continue
|
|
130
|
+
{
|
|
131
|
+
# Reset $replaced before processing the next file.
|
|
132
|
+
$replaced = 0 if eof;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
# EOF
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
# Run the `update-copyright-year' script on all files in the git repository,
|
|
4
|
+
# taking care of exceptions stored in file `no-copyright'.
|
|
5
|
+
|
|
6
|
+
topdir=`git rev-parse --show-toplevel`
|
|
7
|
+
toolsdir=$topdir/src/tools
|
|
8
|
+
|
|
9
|
+
git ls-files --full-name $topdir \
|
|
10
|
+
| sed 's|^|../../|' \
|
|
11
|
+
| grep -vFf $toolsdir/no-copyright \
|
|
12
|
+
| xargs $toolsdir/update-copyright-year
|
|
13
|
+
|
|
14
|
+
# EOF
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
HarfBuzz is licensed under the so-called "Old MIT" license. Details follow.
|
|
2
|
+
For parts of HarfBuzz that are licensed under different licenses see individual
|
|
3
|
+
files names COPYING in subdirectories where applicable.
|
|
4
|
+
|
|
5
|
+
Copyright © 2010,2011,2012 Google, Inc.
|
|
6
|
+
Copyright © 2012 Mozilla Foundation
|
|
7
|
+
Copyright © 2011 Codethink Limited
|
|
8
|
+
Copyright © 2008,2010 Nokia Corporation and/or its subsidiary(-ies)
|
|
9
|
+
Copyright © 2009 Keith Stribley
|
|
10
|
+
Copyright © 2009 Martin Hosken and SIL International
|
|
11
|
+
Copyright © 2007 Chris Wilson
|
|
12
|
+
Copyright © 2006 Behdad Esfahbod
|
|
13
|
+
Copyright © 2005 David Turner
|
|
14
|
+
Copyright © 2004,2007,2008,2009,2010 Red Hat, Inc.
|
|
15
|
+
Copyright © 1998-2004 David Turner and Werner Lemberg
|
|
16
|
+
|
|
17
|
+
For full copyright notices consult the individual files in the package.
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
Permission is hereby granted, without written agreement and without
|
|
21
|
+
license or royalty fees, to use, copy, modify, and distribute this
|
|
22
|
+
software and its documentation for any purpose, provided that the
|
|
23
|
+
above copyright notice and the following two paragraphs appear in
|
|
24
|
+
all copies of this software.
|
|
25
|
+
|
|
26
|
+
IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
|
|
27
|
+
DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
|
|
28
|
+
ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
|
|
29
|
+
IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
|
30
|
+
DAMAGE.
|
|
31
|
+
|
|
32
|
+
THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
|
|
33
|
+
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
34
|
+
FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
|
|
35
|
+
ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
|
|
36
|
+
PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
HarfBuzz was previously licensed under different licenses. This was
|
|
2
|
+
changed in January 2008. If you need to relicense your old copies,
|
|
3
|
+
consult the announcement of the license change on the internet.
|
|
4
|
+
Other than that, each copy of HarfBuzz is licensed under the COPYING
|
|
5
|
+
file included with it. The actual license follows:
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
Permission is hereby granted, without written agreement and without
|
|
9
|
+
license or royalty fees, to use, copy, modify, and distribute this
|
|
10
|
+
software and its documentation for any purpose, provided that the
|
|
11
|
+
above copyright notice and the following two paragraphs appear in
|
|
12
|
+
all copies of this software.
|
|
13
|
+
|
|
14
|
+
IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
|
|
15
|
+
DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
|
|
16
|
+
ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
|
|
17
|
+
IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
|
18
|
+
DAMAGE.
|
|
19
|
+
|
|
20
|
+
THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
|
|
21
|
+
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
22
|
+
FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
|
|
23
|
+
ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
|
|
24
|
+
PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
|
|
2
|
+
This copy of the libpng notices is provided for your convenience. In case of
|
|
3
|
+
any discrepancy between this copy and the notices in the file png.h that is
|
|
4
|
+
included in the libpng distribution, the latter shall prevail.
|
|
5
|
+
|
|
6
|
+
COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:
|
|
7
|
+
|
|
8
|
+
If you modify libpng you may insert additional notices immediately following
|
|
9
|
+
this sentence.
|
|
10
|
+
|
|
11
|
+
This code is released under the libpng license.
|
|
12
|
+
|
|
13
|
+
libpng versions 1.0.7, July 1, 2000, through 1.6.20, December 3, 2015, are
|
|
14
|
+
Copyright (c) 2000-2002, 2004, 2006-2015 Glenn Randers-Pehrson, are
|
|
15
|
+
derived from libpng-1.0.6, and are distributed according to the same
|
|
16
|
+
disclaimer and license as libpng-1.0.6 with the following individuals
|
|
17
|
+
added to the list of Contributing Authors:
|
|
18
|
+
|
|
19
|
+
Simon-Pierre Cadieux
|
|
20
|
+
Eric S. Raymond
|
|
21
|
+
Mans Rullgard
|
|
22
|
+
Cosmin Truta
|
|
23
|
+
Gilles Vollant
|
|
24
|
+
James Yu
|
|
25
|
+
|
|
26
|
+
and with the following additions to the disclaimer:
|
|
27
|
+
|
|
28
|
+
There is no warranty against interference with your enjoyment of the
|
|
29
|
+
library or against infringement. There is no warranty that our
|
|
30
|
+
efforts or the library will fulfill any of your particular purposes
|
|
31
|
+
or needs. This library is provided with all faults, and the entire
|
|
32
|
+
risk of satisfactory quality, performance, accuracy, and effort is with
|
|
33
|
+
the user.
|
|
34
|
+
|
|
35
|
+
libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are
|
|
36
|
+
Copyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from
|
|
37
|
+
libpng-0.96, and are distributed according to the same disclaimer and
|
|
38
|
+
license as libpng-0.96, with the following individuals added to the list
|
|
39
|
+
of Contributing Authors:
|
|
40
|
+
|
|
41
|
+
Tom Lane
|
|
42
|
+
Glenn Randers-Pehrson
|
|
43
|
+
Willem van Schaik
|
|
44
|
+
|
|
45
|
+
libpng versions 0.89, June 1996, through 0.96, May 1997, are
|
|
46
|
+
Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88,
|
|
47
|
+
and are distributed according to the same disclaimer and license as
|
|
48
|
+
libpng-0.88, with the following individuals added to the list of
|
|
49
|
+
Contributing Authors:
|
|
50
|
+
|
|
51
|
+
John Bowler
|
|
52
|
+
Kevin Bracey
|
|
53
|
+
Sam Bushell
|
|
54
|
+
Magnus Holmgren
|
|
55
|
+
Greg Roelofs
|
|
56
|
+
Tom Tanner
|
|
57
|
+
|
|
58
|
+
libpng versions 0.5, May 1995, through 0.88, January 1996, are
|
|
59
|
+
Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
|
|
60
|
+
|
|
61
|
+
For the purposes of this copyright and license, "Contributing Authors"
|
|
62
|
+
is defined as the following set of individuals:
|
|
63
|
+
|
|
64
|
+
Andreas Dilger
|
|
65
|
+
Dave Martindale
|
|
66
|
+
Guy Eric Schalnat
|
|
67
|
+
Paul Schmidt
|
|
68
|
+
Tim Wegner
|
|
69
|
+
|
|
70
|
+
The PNG Reference Library is supplied "AS IS". The Contributing Authors
|
|
71
|
+
and Group 42, Inc. disclaim all warranties, expressed or implied,
|
|
72
|
+
including, without limitation, the warranties of merchantability and of
|
|
73
|
+
fitness for any purpose. The Contributing Authors and Group 42, Inc.
|
|
74
|
+
assume no liability for direct, indirect, incidental, special, exemplary,
|
|
75
|
+
or consequential damages, which may result from the use of the PNG
|
|
76
|
+
Reference Library, even if advised of the possibility of such damage.
|
|
77
|
+
|
|
78
|
+
Permission is hereby granted to use, copy, modify, and distribute this
|
|
79
|
+
source code, or portions hereof, for any purpose, without fee, subject
|
|
80
|
+
to the following restrictions:
|
|
81
|
+
|
|
82
|
+
1. The origin of this source code must not be misrepresented.
|
|
83
|
+
|
|
84
|
+
2. Altered versions must be plainly marked as such and must not
|
|
85
|
+
be misrepresented as being the original source.
|
|
86
|
+
|
|
87
|
+
3. This Copyright notice may not be removed or altered from any
|
|
88
|
+
source or altered source distribution.
|
|
89
|
+
|
|
90
|
+
The Contributing Authors and Group 42, Inc. specifically permit, without
|
|
91
|
+
fee, and encourage the use of this source code as a component to
|
|
92
|
+
supporting the PNG file format in commercial products. If you use this
|
|
93
|
+
source code in a product, acknowledgment is not required but would be
|
|
94
|
+
appreciated.
|
|
95
|
+
|
|
96
|
+
END OF COPYRIGHT NOTICE, DISCLAIMER, and LICENSE.
|
|
97
|
+
|
|
98
|
+
A "png_get_copyright" function is available, for convenient use in "about"
|
|
99
|
+
boxes and the like:
|
|
100
|
+
|
|
101
|
+
printf("%s", png_get_copyright(NULL));
|
|
102
|
+
|
|
103
|
+
Also, the PNG logo (in PNG format, of course) is supplied in the
|
|
104
|
+
files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31).
|
|
105
|
+
|
|
106
|
+
Libpng is OSI Certified Open Source Software. OSI Certified Open Source is
|
|
107
|
+
a certification mark of the Open Source Initiative. OSI has not addressed
|
|
108
|
+
the additional disclaimers inserted at version 1.0.7.
|
|
109
|
+
|
|
110
|
+
Glenn Randers-Pehrson
|
|
111
|
+
glennrp at users.sourceforge.net
|
|
112
|
+
December 3, 2015
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* MD4 (RFC-1320) message digest.
|
|
3
|
+
* Modified from MD5 code by Andrey Panin <pazke@donpac.ru>
|
|
4
|
+
*
|
|
5
|
+
* Written by Solar Designer <solar@openwall.com> in 2001, and placed in
|
|
6
|
+
* the public domain. There's absolutely no warranty.
|
|
7
|
+
*
|
|
8
|
+
* This differs from Colin Plumb's older public domain implementation in
|
|
9
|
+
* that no 32-bit integer data type is required, there's no compile-time
|
|
10
|
+
* endianness configuration, and the function prototypes match OpenSSL's.
|
|
11
|
+
* The primary goals are portability and ease of use.
|
|
12
|
+
*
|
|
13
|
+
* This implementation is meant to be fast, but not as fast as possible.
|
|
14
|
+
* Some known optimizations are not included to reduce source code size
|
|
15
|
+
* and avoid compile-time configuration.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
#include "md4.h"
|
|
19
|
+
|
|
20
|
+
#include <string.h>
|
|
21
|
+
|
|
22
|
+
QT_BEGIN_NAMESPACE
|
|
23
|
+
|
|
24
|
+
/*
|
|
25
|
+
* The basic MD4 functions.
|
|
26
|
+
*/
|
|
27
|
+
#define F(x, y, z) ((z) ^ ((x) & ((y) ^ (z))))
|
|
28
|
+
#define G(x, y, z) (((x) & (y)) | ((x) & (z)) | ((y) & (z)))
|
|
29
|
+
#define H(x, y, z) ((x) ^ (y) ^ (z))
|
|
30
|
+
|
|
31
|
+
/*
|
|
32
|
+
* The MD4 transformation for all four rounds.
|
|
33
|
+
*/
|
|
34
|
+
#define STEP(f, a, b, c, d, x, s) \
|
|
35
|
+
(a) += f((b), (c), (d)) + (x); \
|
|
36
|
+
(a) = ((a) << (s)) | ((a) >> (32 - (s)))
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
/*
|
|
40
|
+
* SET reads 4 input bytes in little-endian byte order and stores them
|
|
41
|
+
* in a properly aligned word in host byte order.
|
|
42
|
+
*
|
|
43
|
+
* The check for little-endian architectures which tolerate unaligned
|
|
44
|
+
* memory accesses is just an optimization. Nothing will break if it
|
|
45
|
+
* doesn't work.
|
|
46
|
+
*/
|
|
47
|
+
#if defined(__i386__) || defined(__x86_64__)
|
|
48
|
+
#define SET(n) \
|
|
49
|
+
(*(const quint32 *)&ptr[(n) * 4])
|
|
50
|
+
#define GET(n) \
|
|
51
|
+
SET(n)
|
|
52
|
+
#else
|
|
53
|
+
#define SET(n) \
|
|
54
|
+
(ctx->block[(n)] = \
|
|
55
|
+
(quint32)ptr[(n) * 4] | \
|
|
56
|
+
((quint32)ptr[(n) * 4 + 1] << 8) | \
|
|
57
|
+
((quint32)ptr[(n) * 4 + 2] << 16) | \
|
|
58
|
+
((quint32)ptr[(n) * 4 + 3] << 24))
|
|
59
|
+
#define GET(n) \
|
|
60
|
+
(ctx->block[(n)])
|
|
61
|
+
#endif
|
|
62
|
+
|
|
63
|
+
/*
|
|
64
|
+
* This processes one or more 64-byte data blocks, but does NOT update
|
|
65
|
+
* the bit counters. There're no alignment requirements.
|
|
66
|
+
*/
|
|
67
|
+
static const unsigned char *body(struct md4_context *ctx, const unsigned char *data, size_t size)
|
|
68
|
+
{
|
|
69
|
+
const unsigned char *ptr;
|
|
70
|
+
quint32 a, b, c, d;
|
|
71
|
+
quint32 saved_a, saved_b, saved_c, saved_d;
|
|
72
|
+
|
|
73
|
+
ptr = data;
|
|
74
|
+
|
|
75
|
+
a = ctx->a;
|
|
76
|
+
b = ctx->b;
|
|
77
|
+
c = ctx->c;
|
|
78
|
+
d = ctx->d;
|
|
79
|
+
|
|
80
|
+
do {
|
|
81
|
+
saved_a = a;
|
|
82
|
+
saved_b = b;
|
|
83
|
+
saved_c = c;
|
|
84
|
+
saved_d = d;
|
|
85
|
+
|
|
86
|
+
/* Round 1 */
|
|
87
|
+
STEP(F, a, b, c, d, SET( 0), 3);
|
|
88
|
+
STEP(F, d, a, b, c, SET( 1), 7);
|
|
89
|
+
STEP(F, c, d, a, b, SET( 2), 11);
|
|
90
|
+
STEP(F, b, c, d, a, SET( 3), 19);
|
|
91
|
+
|
|
92
|
+
STEP(F, a, b, c, d, SET( 4), 3);
|
|
93
|
+
STEP(F, d, a, b, c, SET( 5), 7);
|
|
94
|
+
STEP(F, c, d, a, b, SET( 6), 11);
|
|
95
|
+
STEP(F, b, c, d, a, SET( 7), 19);
|
|
96
|
+
|
|
97
|
+
STEP(F, a, b, c, d, SET( 8), 3);
|
|
98
|
+
STEP(F, d, a, b, c, SET( 9), 7);
|
|
99
|
+
STEP(F, c, d, a, b, SET(10), 11);
|
|
100
|
+
STEP(F, b, c, d, a, SET(11), 19);
|
|
101
|
+
|
|
102
|
+
STEP(F, a, b, c, d, SET(12), 3);
|
|
103
|
+
STEP(F, d, a, b, c, SET(13), 7);
|
|
104
|
+
STEP(F, c, d, a, b, SET(14), 11);
|
|
105
|
+
STEP(F, b, c, d, a, SET(15), 19);
|
|
106
|
+
/* Round 2 */
|
|
107
|
+
STEP(G, a, b, c, d, GET( 0) + 0x5A827999, 3);
|
|
108
|
+
STEP(G, d, a, b, c, GET( 4) + 0x5A827999, 5);
|
|
109
|
+
STEP(G, c, d, a, b, GET( 8) + 0x5A827999, 9);
|
|
110
|
+
STEP(G, b, c, d, a, GET(12) + 0x5A827999, 13);
|
|
111
|
+
|
|
112
|
+
STEP(G, a, b, c, d, GET( 1) + 0x5A827999, 3);
|
|
113
|
+
STEP(G, d, a, b, c, GET( 5) + 0x5A827999, 5);
|
|
114
|
+
STEP(G, c, d, a, b, GET( 9) + 0x5A827999, 9);
|
|
115
|
+
STEP(G, b, c, d, a, GET(13) + 0x5A827999, 13);
|
|
116
|
+
|
|
117
|
+
STEP(G, a, b, c, d, GET( 2) + 0x5A827999, 3);
|
|
118
|
+
STEP(G, d, a, b, c, GET( 6) + 0x5A827999, 5);
|
|
119
|
+
STEP(G, c, d, a, b, GET(10) + 0x5A827999, 9);
|
|
120
|
+
STEP(G, b, c, d, a, GET(14) + 0x5A827999, 13);
|
|
121
|
+
|
|
122
|
+
STEP(G, a, b, c, d, GET( 3) + 0x5A827999, 3);
|
|
123
|
+
STEP(G, d, a, b, c, GET( 7) + 0x5A827999, 5);
|
|
124
|
+
STEP(G, c, d, a, b, GET(11) + 0x5A827999, 9);
|
|
125
|
+
STEP(G, b, c, d, a, GET(15) + 0x5A827999, 13);
|
|
126
|
+
/* Round 3 */
|
|
127
|
+
STEP(H, a, b, c, d, GET( 0) + 0x6ED9EBA1, 3);
|
|
128
|
+
STEP(H, d, a, b, c, GET( 8) + 0x6ED9EBA1, 9);
|
|
129
|
+
STEP(H, c, d, a, b, GET( 4) + 0x6ED9EBA1, 11);
|
|
130
|
+
STEP(H, b, c, d, a, GET(12) + 0x6ED9EBA1, 15);
|
|
131
|
+
|
|
132
|
+
STEP(H, a, b, c, d, GET( 2) + 0x6ED9EBA1, 3);
|
|
133
|
+
STEP(H, d, a, b, c, GET(10) + 0x6ED9EBA1, 9);
|
|
134
|
+
STEP(H, c, d, a, b, GET( 6) + 0x6ED9EBA1, 11);
|
|
135
|
+
STEP(H, b, c, d, a, GET(14) + 0x6ED9EBA1, 15);
|
|
136
|
+
|
|
137
|
+
STEP(H, a, b, c, d, GET( 1) + 0x6ED9EBA1, 3);
|
|
138
|
+
STEP(H, d, a, b, c, GET( 9) + 0x6ED9EBA1, 9);
|
|
139
|
+
STEP(H, c, d, a, b, GET( 5) + 0x6ED9EBA1, 11);
|
|
140
|
+
STEP(H, b, c, d, a, GET(13) + 0x6ED9EBA1, 15);
|
|
141
|
+
|
|
142
|
+
STEP(H, a, b, c, d, GET( 3) + 0x6ED9EBA1, 3);
|
|
143
|
+
STEP(H, d, a, b, c, GET(11) + 0x6ED9EBA1, 9);
|
|
144
|
+
STEP(H, c, d, a, b, GET( 7) + 0x6ED9EBA1, 11);
|
|
145
|
+
STEP(H, b, c, d, a, GET(15) + 0x6ED9EBA1, 15);
|
|
146
|
+
|
|
147
|
+
a += saved_a;
|
|
148
|
+
b += saved_b;
|
|
149
|
+
c += saved_c;
|
|
150
|
+
d += saved_d;
|
|
151
|
+
|
|
152
|
+
ptr += 64;
|
|
153
|
+
} while (size -= 64);
|
|
154
|
+
|
|
155
|
+
ctx->a = a;
|
|
156
|
+
ctx->b = b;
|
|
157
|
+
ctx->c = c;
|
|
158
|
+
ctx->d = d;
|
|
159
|
+
|
|
160
|
+
return ptr;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
static void md4_init(struct md4_context *ctx)
|
|
164
|
+
{
|
|
165
|
+
ctx->a = 0x67452301;
|
|
166
|
+
ctx->b = 0xefcdab89;
|
|
167
|
+
ctx->c = 0x98badcfe;
|
|
168
|
+
ctx->d = 0x10325476;
|
|
169
|
+
|
|
170
|
+
ctx->lo = 0;
|
|
171
|
+
ctx->hi = 0;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
static void md4_update(struct md4_context *ctx, const unsigned char *data, size_t size)
|
|
175
|
+
{
|
|
176
|
+
/* @UNSAFE */
|
|
177
|
+
quint32 saved_lo;
|
|
178
|
+
unsigned long used, free;
|
|
179
|
+
|
|
180
|
+
saved_lo = ctx->lo;
|
|
181
|
+
if ((ctx->lo = (saved_lo + size) & 0x1fffffff) < saved_lo)
|
|
182
|
+
ctx->hi++;
|
|
183
|
+
ctx->hi += (quint32)(size >> 29);
|
|
184
|
+
|
|
185
|
+
used = saved_lo & 0x3f;
|
|
186
|
+
|
|
187
|
+
if (used) {
|
|
188
|
+
free = 64 - used;
|
|
189
|
+
|
|
190
|
+
if (size < free) {
|
|
191
|
+
memcpy(&ctx->buffer[used], data, size);
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
memcpy(&ctx->buffer[used], data, free);
|
|
196
|
+
data = (const unsigned char *) data + free;
|
|
197
|
+
size -= free;
|
|
198
|
+
body(ctx, ctx->buffer, 64);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
if (size >= 64) {
|
|
202
|
+
data = body(ctx, data, size & ~(unsigned long)0x3f);
|
|
203
|
+
size &= 0x3f;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
memcpy(ctx->buffer, data, size);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
static void md4_final(struct md4_context *ctx, unsigned char result[MD4_RESULTLEN])
|
|
210
|
+
{
|
|
211
|
+
/* @UNSAFE */
|
|
212
|
+
unsigned long used, free;
|
|
213
|
+
|
|
214
|
+
used = ctx->lo & 0x3f;
|
|
215
|
+
|
|
216
|
+
ctx->buffer[used++] = 0x80;
|
|
217
|
+
|
|
218
|
+
free = 64 - used;
|
|
219
|
+
|
|
220
|
+
if (free < 8) {
|
|
221
|
+
memset(&ctx->buffer[used], 0, free);
|
|
222
|
+
body(ctx, ctx->buffer, 64);
|
|
223
|
+
used = 0;
|
|
224
|
+
free = 64;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
memset(&ctx->buffer[used], 0, free - 8);
|
|
228
|
+
|
|
229
|
+
ctx->lo <<= 3;
|
|
230
|
+
ctx->buffer[56] = ctx->lo;
|
|
231
|
+
ctx->buffer[57] = ctx->lo >> 8;
|
|
232
|
+
ctx->buffer[58] = ctx->lo >> 16;
|
|
233
|
+
ctx->buffer[59] = ctx->lo >> 24;
|
|
234
|
+
ctx->buffer[60] = ctx->hi;
|
|
235
|
+
ctx->buffer[61] = ctx->hi >> 8;
|
|
236
|
+
ctx->buffer[62] = ctx->hi >> 16;
|
|
237
|
+
ctx->buffer[63] = ctx->hi >> 24;
|
|
238
|
+
|
|
239
|
+
body(ctx, ctx->buffer, 64);
|
|
240
|
+
|
|
241
|
+
result[0] = ctx->a;
|
|
242
|
+
result[1] = ctx->a >> 8;
|
|
243
|
+
result[2] = ctx->a >> 16;
|
|
244
|
+
result[3] = ctx->a >> 24;
|
|
245
|
+
result[4] = ctx->b;
|
|
246
|
+
result[5] = ctx->b >> 8;
|
|
247
|
+
result[6] = ctx->b >> 16;
|
|
248
|
+
result[7] = ctx->b >> 24;
|
|
249
|
+
result[8] = ctx->c;
|
|
250
|
+
result[9] = ctx->c >> 8;
|
|
251
|
+
result[10] = ctx->c >> 16;
|
|
252
|
+
result[11] = ctx->c >> 24;
|
|
253
|
+
result[12] = ctx->d;
|
|
254
|
+
result[13] = ctx->d >> 8;
|
|
255
|
+
result[14] = ctx->d >> 16;
|
|
256
|
+
result[15] = ctx->d >> 24;
|
|
257
|
+
|
|
258
|
+
memset(ctx, 0, sizeof(*ctx));
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
#undef F
|
|
262
|
+
#undef G
|
|
263
|
+
#undef H
|
|
264
|
+
|
|
265
|
+
QT_END_NAMESPACE
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This is an OpenSSL-compatible implementation of the RSA Data Security,
|
|
3
|
+
* Inc. MD4 Message-Digest Algorithm.
|
|
4
|
+
*
|
|
5
|
+
* Written by Solar Designer <solar@openwall.com> in 2001, and placed in
|
|
6
|
+
* the public domain. See md4.c for more information.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
#ifndef __MD4_H
|
|
10
|
+
#define __MD4_H
|
|
11
|
+
|
|
12
|
+
#include <qglobal.h>
|
|
13
|
+
|
|
14
|
+
QT_BEGIN_NAMESPACE
|
|
15
|
+
|
|
16
|
+
#define MD4_RESULTLEN (128/8)
|
|
17
|
+
|
|
18
|
+
struct md4_context {
|
|
19
|
+
quint32 lo, hi;
|
|
20
|
+
quint32 a, b, c, d;
|
|
21
|
+
unsigned char buffer[64];
|
|
22
|
+
quint32 block[MD4_RESULTLEN];
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
static void md4_init(struct md4_context *ctx);
|
|
26
|
+
static void md4_update(struct md4_context *ctx, const unsigned char *data, size_t size);
|
|
27
|
+
static void md4_final(struct md4_context *ctx, unsigned char result[MD4_RESULTLEN]);
|
|
28
|
+
|
|
29
|
+
QT_END_NAMESPACE
|
|
30
|
+
|
|
31
|
+
#endif
|