File: des-set-odd-parity.pl

package info (click to toggle)
openswan 1%3A2.2.0-8
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 26,716 kB
  • ctags: 15,429
  • sloc: ansic: 102,352; sh: 16,532; xml: 10,040; asm: 4,026; makefile: 3,420; perl: 3,375; tcl: 706; exp: 655; yacc: 388; lex: 289; pascal: 282; sed: 242; awk: 124; lisp: 3
file content (44 lines) | stat: -rw-r--r-- 1,492 bytes parent folder | download | duplicates (6)
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
#!/usr/bin/perl

@odd_parity=(
  1,  1,  2,  2,  4,  4,  7,  7,  8,  8, 11, 11, 13, 13, 14, 14,
 16, 16, 19, 19, 21, 21, 22, 22, 25, 25, 26, 26, 28, 28, 31, 31,
 32, 32, 35, 35, 37, 37, 38, 38, 41, 41, 42, 42, 44, 44, 47, 47,
 49, 49, 50, 50, 52, 52, 55, 55, 56, 56, 59, 59, 61, 61, 62, 62,
 64, 64, 67, 67, 69, 69, 70, 70, 73, 73, 74, 74, 76, 76, 79, 79,
 81, 81, 82, 82, 84, 84, 87, 87, 88, 88, 91, 91, 93, 93, 94, 94,
 97, 97, 98, 98,100,100,103,103,104,104,107,107,109,109,110,110,
112,112,115,115,117,117,118,118,121,121,122,122,124,124,127,127,
128,128,131,131,133,133,134,134,137,137,138,138,140,140,143,143,
145,145,146,146,148,148,151,151,152,152,155,155,157,157,158,158,
161,161,162,162,164,164,167,167,168,168,171,171,173,173,174,174,
176,176,179,179,181,181,182,182,185,185,186,186,188,188,191,191,
193,193,194,194,196,196,199,199,200,200,203,203,205,205,206,206,
208,208,211,211,213,213,214,214,217,217,218,218,220,220,223,223,
224,224,227,227,229,229,230,230,233,233,234,234,236,236,239,239,
241,241,242,242,244,244,247,247,248,248,251,251,253,253,254,254);

for $i (@ARGV) {
  if($i =~ /^0x/) {
    # convert hex to binary
    $i = pack("H*", substr($i,2));
  }
  @bytes=unpack("C*", $i);
  print join(',', @bytes)."\n";
  
  print "0x";
  foreach $byte (@bytes) {
    $byte = $odd_parity[$byte];
    print sprintf("%02x", $byte);
  }
  print "\n";
  print "\"";
  foreach $byte (@bytes) {
    $byte = $odd_parity[$byte];
    print pack("c", $byte);
  }
  print "\"\n";
}