On Sun, Jan 13, 2013 at 03:40:36PM +0100, LEVAI Daniel wrote:
> Hi!
> 
> ian@ contacted me off-list to solve a problem with his mtp device. To be
> perfectly honest, I don't use libmtp, but it seems that this update
> solves one of his problems (regarding ill-behavioured locale detection
> in the example utilities).
> The new version also contains MTPZ support and more supported devices.

How about the following instead.


Index: Makefile
===================================================================
RCS file: /home/cvs/ports/devel/libmtp/Makefile,v
retrieving revision 1.21
diff -u -p -r1.21 Makefile
--- Makefile    16 Dec 2012 11:35:24 -0000      1.21
+++ Makefile    14 Jan 2013 13:37:47 -0000
@@ -2,9 +2,8 @@
 
 COMMENT=               Media Transfer Protocol (MTP) implementation
 
-DISTNAME=              libmtp-1.1.3
-REVISION=              0
-SHARED_LIBS +=  mtp                  5.0      # 9.3
+DISTNAME=              libmtp-1.1.5
+SHARED_LIBS +=         mtp     5.1     # 9.5
 CATEGORIES=            devel
 
 HOMEPAGE=              http://libmtp.sourceforge.net/
Index: distinfo
===================================================================
RCS file: /home/cvs/ports/devel/libmtp/distinfo,v
retrieving revision 1.9
diff -u -p -r1.9 distinfo
--- distinfo    23 Apr 2012 13:39:50 -0000      1.9
+++ distinfo    14 Jan 2013 13:37:09 -0000
@@ -1,5 +1,2 @@
-MD5 (libmtp-1.1.3.tar.gz) = EVKe7a8OH8AM3WEZ7sUl8A==
-RMD160 (libmtp-1.1.3.tar.gz) = 3uGd7ssyO+opDRlgRmu09vO2/18=
-SHA1 (libmtp-1.1.3.tar.gz) = qj3RATIHhNxMPg7otmmuTJA/YnU=
-SHA256 (libmtp-1.1.3.tar.gz) = p5T4bLwdO0O2VNWgUATwmSX91E96jYfT8LTeQp596Pg=
-SIZE (libmtp-1.1.3.tar.gz) = 689357
+SHA256 (libmtp-1.1.5.tar.gz) = eHZ5Fxuvizzy/MAxlscFq018vJab1x+dNpa+HOfxxjo=
+SIZE (libmtp-1.1.5.tar.gz) = 723925
Index: patches/patch-src_mtpz_c
===================================================================
RCS file: patches/patch-src_mtpz_c
diff -N patches/patch-src_mtpz_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_mtpz_c    14 Jan 2013 15:44:23 -0000
@@ -0,0 +1,78 @@
+$OpenBSD$
+--- src/mtpz.c.orig    Sun Sep  2 10:46:25 2012
++++ src/mtpz.c Mon Jan 14 10:41:14 2013
+@@ -236,7 +236,7 @@ unsigned int mtpz_aes_gb9[];
+ #define MTPZ_ENCRYPTIONBYTE2(val) (((val) >>  8) & 0xFF)
+ #define MTPZ_ENCRYPTIONBYTE3(val) (((val) >>  0) & 0xFF)
+ 
+-#define MTPZ_SWAP(x) __builtin_bswap32(x)
++#define MTPZ_SWAP(x) mtpz_bswap32(x)
+ 
+ void mtpz_encryption_cipher(unsigned char *data, unsigned int len, char 
encrypt);
+ void mtpz_encryption_cipher_advanced(unsigned char *key, unsigned int 
key_len, unsigned char *data, unsigned int data_len, char encrypt);
+@@ -248,6 +248,17 @@ void mtpz_encryption_encrypt_custom(unsigned char *dat
+ void mtpz_encryption_encrypt_mac(unsigned char *hash, unsigned int 
hash_length, unsigned char *seed, unsigned int seed_len, unsigned char *out);
+ 
+ 
++static inline uint32_t mtpz_bswap32(uint32_t x)
++{
++#if defined __GNUC__ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 
3)) || defined(__clang__)
++      return __builtin_bswap32(x)
++#else
++      return (x >> 24) |
++             ((x >> 8) & 0x0000ff00) |
++             ((x << 8) & 0x00ff0000) |
++             (x << 24);
++#endif
++}
+ 
+ 
+ /* MTPZ RSA implementation */
+@@ -1574,11 +1585,11 @@ ptp_mtpz_validatehandshakeresponse (PTPParams* params,
+               mtpz_encryption_cipher_advanced((unsigned char *)hash_key, 16, 
act_msg, 832, 0);
+ 
+               act_reader++;
+-              unsigned int certs_length = __builtin_bswap32(*(unsigned int 
*)(act_reader));
++              unsigned int certs_length = MTPZ_SWAP(*(unsigned int 
*)(act_reader));
+               act_reader += 4;
+               act_reader += certs_length;
+ 
+-              unsigned int rand_length = __builtin_bswap32(*(unsigned short 
*)(act_reader) << 16);
++              unsigned int rand_length = MTPZ_SWAP(*(unsigned short 
*)(act_reader) << 16);
+               act_reader += 2;
+               unsigned char *rand_data = (unsigned char *)malloc(rand_length);
+               memcpy(rand_data, act_reader, rand_length);
+@@ -1590,19 +1601,19 @@ ptp_mtpz_validatehandshakeresponse (PTPParams* params,
+               free(rand_data);
+               act_reader += rand_length;
+ 
+-              unsigned int dev_rand_length = __builtin_bswap32(*(unsigned 
short *)(act_reader) << 16);
++              unsigned int dev_rand_length = MTPZ_SWAP(*(unsigned short 
*)(act_reader) << 16);
+               act_reader += 2;
+               act_reader += dev_rand_length;
+ 
+               act_reader++;
+ 
+-              unsigned int sig_length = __builtin_bswap32(*(unsigned short 
*)(act_reader) << 16);
++              unsigned int sig_length = MTPZ_SWAP(*(unsigned short 
*)(act_reader) << 16);
+               act_reader += 2;
+               act_reader += sig_length;
+ 
+               act_reader++;
+ 
+-              unsigned int machash_length = __builtin_bswap32(*(unsigned 
short *)(act_reader) << 16);
++              unsigned int machash_length = MTPZ_SWAP(*(unsigned short 
*)(act_reader) << 16);
+               act_reader += 2;
+               unsigned char *machash_data = (unsigned char 
*)malloc(machash_length);
+               memcpy(machash_data, act_reader, machash_length);
+@@ -1636,8 +1647,8 @@ ptp_mtpz_opensecuresyncsession (PTPParams* params, uns
+       mtpz_encryption_encrypt_mac(hash, 16, (unsigned char *)(&macCount), 4, 
mch);
+ 
+       ret = ptp_mtpz_wmdrmpd_enabletrustedfilesoperations(params,
+-              __builtin_bswap32(hashparams[0]), 
__builtin_bswap32(hashparams[1]),
+-              __builtin_bswap32(hashparams[2]), 
__builtin_bswap32(hashparams[3]));
++              MTPZ_SWAP(hashparams[0]), MTPZ_SWAP(hashparams[1]),
++              MTPZ_SWAP(hashparams[2]), MTPZ_SWAP(hashparams[3]));
+       return ret;
+ };
+ 

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.

Reply via email to