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
|
https://src.fedoraproject.org/rpms/perl-Crypt-DES/raw/0a4557f6b118387730b895037e4a17c90f212e68/f/perl-Crypt-DES-fedora-c99.patch
https://rt.cpan.org/Public/Bug/Display.html?id=133363
https://rt.cpan.org/Public/Bug/Display.html?id=133412
https://bugs.gentoo.org/870427
--- a/DES.xs
+++ b/DES.xs
@@ -36,7 +36,7 @@ _des_expand_key(key)
if (key_len != sizeof(des_user_key))
croak("Invalid key");
- perl_des_expand_key((i8 *)key, ks);
+ perl_des_expand_key((unsigned char *)key, ks);
ST(0) = sv_2mortal(newSVpv((char *)ks, sizeof(ks)));
}
@@ -66,7 +66,8 @@ _des_crypt(input, output, ks, enc_flag)
(SvUPGRADE(output, SVt_PV));
- perl_des_crypt(input, SvGROW(output, output_len), (i32 *)ks, enc_flag);
+ perl_des_crypt((unsigned char *)input, (unsigned char *)SvGROW(output, output_len),
+ (unsigned long *)ks, enc_flag);
SvCUR_set(output, output_len);
*SvEND(output) = '\0';
--- a/_des.h
+++ b/_des.h
@@ -5,3 +5,5 @@ typedef unsigned long des_ks[32];
void _des_crypt( des_cblock in, des_cblock out, des_ks key, int encrypt );
void _des_expand_key( des_user_key userKey, des_ks key );
+void perl_des_expand_key(des_user_key userKey, des_ks ks);
+void perl_des_crypt( des_cblock input, des_cblock output, des_ks ks, int encrypt );
|