Extract Subversion ignore data.
[catacomb-perl] / Cipher.pl
CommitLineData
660b443c 1#! /usr/bin/perl
2
3@cipher = qw(blowfish cast128 cast256 des des3 idea rc2 rc5 rijndael serpent
4 skipjack square tea twofish xtea);
5@streams = qw(rc4 seal);
6@hash = qw(md5 md4 md2 tiger
7 sha sha256 sha384 sha512
8 rmd128 rmd160 rmd256 rmd320);
9
10sub enum {
11 $x = shift;
12 if (!ref($x)) { return $x; }
13 elsif (ref($x) eq ARRAY) { return @$x }
14 else { die "bad ref"; }
15}
16
17sub cross {
18 my $x = [];
19 foreach my $i (@_) {
20 my @y = enum($i);
21 if (@$x) {
22 my @x = ();
23 foreach my $j (@$x) { foreach my $k (@y) { push(@x, $j.$k); } }
24 $x = \@x;
25 } else {
26 $x = \@y;
27 }
28 }
29 return @$x;
30}
31
32print <<EOF;
33/* -*-c-*-
34 *
35 * Cipher.xs [generated]
36 */
37
38#include <assert.h>
39
40#include <EXTERN.h>
41#include <perl.h>
42#include <XSUB.h>
43
44#include <catacomb/gcipher.h>
45
46EOF
47print cross("#include <catacomb/", \@cipher, "-",
48 [qw(ecb cbc cfb counter ofb)], ".h>\n"), "\n";
49print cross("#include <catacomb/", \@hash, ".h>\n"), "\n";
50print cross("#include <catacomb/", \@hash, "-",
51 [qw(mgf hmac)], ".h>\n"), "\n";