Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/external/bsd/file/dist sync with head of upstream to fix Mac...



details:   https://anonhg.NetBSD.org/src/rev/f66219c94f02
branches:  trunk
changeset: 333155:f66219c94f02
user:      christos <christos%NetBSD.org@localhost>
date:      Mon Oct 20 21:48:57 2014 +0000

description:
sync with head of upstream to fix MacOS/X compilation and more.

diffstat:

 external/bsd/file/dist/ChangeLog        |    9 +
 external/bsd/file/dist/configure.ac     |    4 +-
 external/bsd/file/dist/magic/magdir/elf |    1 -
 external/bsd/file/dist/magic/magdir/pgp |  390 +++++++++++++++++++++++++++++++-
 external/bsd/file/dist/src/apprentice.c |    8 +-
 external/bsd/file/dist/src/file.c       |    8 +-
 external/bsd/file/dist/src/file.h       |    7 +-
 external/bsd/file/dist/src/fsmagic.c    |   12 +-
 external/bsd/file/dist/src/readelf.c    |   13 +-
 9 files changed, 430 insertions(+), 22 deletions(-)

diffs (truncated from 618 to 300 lines):

diff -r 889ef31cd8ca -r f66219c94f02 external/bsd/file/dist/ChangeLog
--- a/external/bsd/file/dist/ChangeLog  Mon Oct 20 21:18:00 2014 +0000
+++ b/external/bsd/file/dist/ChangeLog  Mon Oct 20 21:48:57 2014 +0000
@@ -1,3 +1,12 @@
+2014-10-17  11:48  Christos Zoulas <christos%zoulas.com@localhost>
+
+       * fix bounds in note reading (Francisco Alonso / Red Hat)
+
+2014-10-11  15:02  Christos Zoulas <christos%zoulas.com@localhost>
+
+       * fix autoconf glue for setlocale and locale_t; some OS's
+         have locale_t in xlocale.h
+
 2014-10-10  15:01  Christos Zoulas <christos%zoulas.com@localhost>
 
        * release 5.20
diff -r 889ef31cd8ca -r f66219c94f02 external/bsd/file/dist/configure.ac
--- a/external/bsd/file/dist/configure.ac       Mon Oct 20 21:18:00 2014 +0000
+++ b/external/bsd/file/dist/configure.ac       Mon Oct 20 21:48:57 2014 +0000
@@ -83,7 +83,7 @@
 AC_HEADER_SYS_WAIT
 AC_CHECK_HEADERS(stdint.h fcntl.h locale.h stdint.h inttypes.h unistd.h)
 AC_CHECK_HEADERS(stddef.h utime.h wchar.h wctype.h limits.h)
-AC_CHECK_HEADERS(getopt.h err.h)
+AC_CHECK_HEADERS(getopt.h err.h xlocale.h)
 AC_CHECK_HEADERS(sys/mman.h sys/stat.h sys/types.h sys/utime.h sys/time.h)
 AC_CHECK_HEADERS(zlib.h)
 
@@ -139,7 +139,7 @@
 fi])
 
 dnl Checks for functions
-AC_CHECK_FUNCS(strerror strndup strtoul mkstemp mkostemp utimes utime wcwidth strtof newlocale uselocale freelocale)
+AC_CHECK_FUNCS(strerror strndup strtoul mkstemp mkostemp utimes utime wcwidth strtof newlocale uselocale freelocale setlocale)
 
 dnl Provide implementation of some required functions if necessary
 AC_REPLACE_FUNCS(getopt_long asprintf vasprintf strlcpy strlcat getline ctime_r asctime_r pread strcasestr fmtcheck)
diff -r 889ef31cd8ca -r f66219c94f02 external/bsd/file/dist/magic/magdir/elf
--- a/external/bsd/file/dist/magic/magdir/elf   Mon Oct 20 21:18:00 2014 +0000
+++ b/external/bsd/file/dist/magic/magdir/elf   Mon Oct 20 21:48:57 2014 +0000
@@ -30,7 +30,6 @@
 #>>>(0x38+0xcc) string >\0             of '%s'
 #>>>(0x38+0x10) lelong >0              (signal %d),
 >16    leshort         &0xff00         processor-specific,
->18    clear           x
 >18    leshort         0               no machine,
 >18    leshort         1               AT&T WE32100,
 >18    leshort         2               SPARC,
diff -r 889ef31cd8ca -r f66219c94f02 external/bsd/file/dist/magic/magdir/pgp
--- a/external/bsd/file/dist/magic/magdir/pgp   Mon Oct 20 21:18:00 2014 +0000
+++ b/external/bsd/file/dist/magic/magdir/pgp   Mon Oct 20 21:48:57 2014 +0000
@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: pgp,v 1.9 2009/09/19 16:28:11 christos Exp $
+# $File: pgp,v 1.10 2014/10/14 16:50:37 christos Exp $
 # pgp:  file(1) magic for Pretty Good Privacy
 # see http://lists.gnupg.org/pipermail/gnupg-devel/1999-September/016052.html
 #
@@ -25,3 +25,391 @@
 !:mime application/pgp
 0      string  -----BEGIN\040PGP\40SIGNATURE-          PGP signature
 !:mime application/pgp-signature
+
+# magic signatures to detect PGP crypto material (from stef)
+# detects and extracts metadata from:
+#  - symmetric encrypted packet header
+#  - RSA (e=65537) secret (sub-)keys
+
+# 1024b RSA encrypted data
+
+0      string  \x84\x8c\x03            PGP RSA encrypted session key -
+>3     lelong  x                       keyid: %X
+>7     lelong  x                       %X
+>11    byte    0x01                    RSA (Encrypt or Sign) 1024b
+>11    byte    0x02                    RSA Encrypt-Only 1024b
+>12    string  \x04\x00
+>12    string  \x03\xff
+>12    string  \x03\xfe
+>12    string  \x03\xfd
+>12    string  \x03\xfc
+>12    string  \x03\xfb
+>12    string  \x03\xfa
+>12    string  \x03\xf9
+>142   byte    0xd2                    .
+
+# 2048b RSA encrypted data
+
+0      string  \x85\x01\x0c\x03        PGP RSA encrypted session key -
+>4     lelong  x                       keyid: %X
+>8     lelong  x                       %X
+>12    byte    0x01                    RSA (Encrypt or Sign) 2048b
+>12    byte    0x02                    RSA Encrypt-Only 2048b
+>13    string  \x08\x00
+>13    string  \x07\xff
+>13    string  \x07\xfe
+>13    string  \x07\xfd
+>13    string  \x07\xfc
+>13    string  \x07\xfb
+>13    string  \x07\xfa
+>13    string  \x07\xf9
+>271   byte    0xd2                    .
+
+# 3072b RSA encrypted data
+
+0      string  \x85\x01\x8c\x03        PGP RSA encrypted session key -
+>4     lelong  x                       keyid: %X
+>8     lelong  x                       %X
+>12    byte    0x01                    RSA (Encrypt or Sign) 3072b
+>12    byte    0x02                    RSA Encrypt-Only 3072b
+>13    string  \x0c\x00
+>13    string  \x0b\xff
+>13    string  \x0b\xfe
+>13    string  \x0b\xfd
+>13    string  \x0b\xfc
+>13    string  \x0b\xfb
+>13    string  \x0b\xfa
+>13    string  \x0b\xf9
+>399   byte    0xd2                    .
+
+# 3072b RSA encrypted data
+
+0      string  \x85\x02\x0c\x03        PGP RSA encrypted session key -
+>4     lelong  x                       keyid: %X
+>8     lelong  x                       %X
+>12    byte    0x01                    RSA (Encrypt or Sign) 4096b
+>12    byte    0x02                    RSA Encrypt-Only 4096b
+>13    string  \x10\x00
+>13    string  \x0f\xff
+>13    string  \x0f\xfe
+>13    string  \x0f\xfd
+>13    string  \x0f\xfc
+>13    string  \x0f\xfb
+>13    string  \x0f\xfa
+>13    string  \x0f\xf9
+>527   byte    0xd2                    .
+
+# 4096b RSA encrypted data
+
+0      string  \x85\x04\x0c\x03        PGP RSA encrypted session key -
+>4     lelong  x                       keyid: %X
+>8     lelong  x                       %X
+>12    byte    0x01                    RSA (Encrypt or Sign) 8129b
+>12    byte    0x02                    RSA Encrypt-Only 8129b
+>13    string  \x20\x00
+>13    string  \x1f\xff
+>13    string  \x1f\xfe
+>13    string  \x1f\xfd
+>13    string  \x1f\xfc
+>13    string  \x1f\xfb
+>13    string  \x1f\xfa
+>13    string  \x1f\xf9
+>1039  byte    0xd2                    .
+
+# crypto algo mapper
+
+0      name    crypto
+>0     byte    0x00                    Plaintext or unencrypted data
+>0     byte    0x01                    IDEA
+>0     byte    0x02                    TripleDES
+>0     byte    0x03                    CAST5 (128 bit key)
+>0     byte    0x04                    Blowfish (128 bit key, 16 rounds)
+>0     byte    0x07                    AES with 128-bit key
+>0     byte    0x08                    AES with 192-bit key
+>0     byte    0x09                    AES with 256-bit key
+>0     byte    0x0a                    Twofish with 256-bit key
+
+# hash algo mapper
+
+0      name    hash
+>0     byte    0x01                    MD5
+>0     byte    0x02                    SHA-1
+>0     byte    0x03                    RIPE-MD/160
+>0     byte    0x08                    SHA256
+>0     byte    0x09                    SHA384
+>0     byte    0x0a                    SHA512
+>0     byte    0x0b                    SHA224
+
+# pgp symmetric encrypted data
+
+0      byte    0x8c                    PGP symmetric key encrypted data -
+>1     byte    0x0d
+>1     byte    0x0c
+>2     byte    0x04
+>3     use     crypto
+>4     byte    0x01                    salted -
+>>5    use     hash
+>>14   byte    0xd2                    .
+>>14   byte    0xc9                    .
+>4     byte    0x03                    salted & iterated -
+>>5    use     hash
+>>15   byte    0xd2                    .
+>>15   byte    0xc9                    .
+
+# encrypted keymaterial needs s2k & can be checksummed/hashed
+
+0      name    chkcrypto
+>0     use     crypto
+>1     byte    0x00                    Simple S2K
+>1     byte    0x01                    Salted S2K
+>1     byte    0x03                    Salted&Iterated S2K
+>2     use     hash
+
+# all PGP keys start with this prolog
+# containing version, creation date, and purpose
+
+0      name    keyprolog
+>0     byte    0x04
+>1     beldate x                       created on %s -
+>5     byte    0x01                    RSA (Encrypt or Sign)
+>5     byte    0x02                    RSA Encrypt-Only
+
+# end of secret keys known signature
+# contains e=65537 and the prolog to
+# the encrypted parameters
+
+0      name    keyend
+>0     string  \x00\x11\x01\x00\x01    e=65537
+>5     use     crypto
+>5     byte    0xff                    checksummed
+>>6    use     chkcrypto
+>5     byte    0xfe                    hashed
+>>6    use     chkcrypto
+
+# PGP secret keys contain also the public parts
+# these vary by bitsize of the key
+
+0      name    x1024
+>0     use     keyprolog
+>6     string  \x03\xfe
+>6     string  \x03\xff
+>6     string  \x04\x00
+>136   use     keyend
+
+0      name    x2048
+>0     use     keyprolog
+>6     string  \x80\x00
+>6     string  \x07\xfe
+>6     string  \x07\xff
+>264   use     keyend
+
+0      name    x3072
+>0     use     keyprolog
+>6     string  \x0b\xfe
+>6     string  \x0b\xff
+>6     string  \x0c\x00
+>392   use     keyend
+
+0      name    x4096
+>0     use     keyprolog
+>6     string  \x10\x00
+>6     string  \x0f\xfe
+>6     string  \x0f\xff
+>520   use     keyend
+
+# \x00|\x1f[\xfe\xff]).{1024})'
+0      name    x8192
+>0     use     keyprolog
+>6     string  \x20\x00
+>6     string  \x1f\xfe
+>6     string  \x1f\xff
+>1032  use     keyend
+
+# depending on the size of the pkt
+# we branch into the proper key size
+# signatures defined as x{keysize}
+
+>0     name    pgpkey
+>0     string  \x01\xd8        1024b
+>>2    use     x1024
+>0     string  \x01\xeb        1024b
+>>2    use     x1024
+>0     string  \x01\xfb        1024b
+>>2    use     x1024
+>0     string  \x01\xfd        1024b
+>>2    use     x1024
+>0     string  \x01\xf3        1024b
+>>2    use     x1024
+>0     string  \x01\xee        1024b
+>>2    use     x1024
+>0     string  \x01\xfe        1024b
+>>2    use     x1024
+>0     string  \x01\xf4        1024b
+>>2    use     x1024
+>0     string  \x02\x0d        1024b
+>>2    use     x1024
+>0     string  \x02\x03        1024b
+>>2    use     x1024
+>0     string  \x02\x05        1024b
+>>2    use     x1024
+>0     string  \x02\x15        1024b
+>>2    use     x1024
+>0     string  \x02\x00        1024b
+>>2    use     x1024
+>0     string  \x02\x10        1024b
+>>2    use     x1024
+>0     string  \x02\x04        1024b
+>>2    use     x1024
+>0     string  \x02\x06        1024b
+>>2    use     x1024



Home | Main Index | Thread Index | Old Index