1 // Copyright 2007,2008 Segher Boessenkool <segher@kernel.crashing.org>
2 // Licensed under the terms of the GNU GPL, version 2
3 // http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
9 typedef unsigned char u8
;
10 typedef unsigned short u16
;
11 typedef unsigned int u32
;
12 typedef unsigned long long u64
;
20 int bn_compare(u8
*a
, u8
*b
, u32 n
);
21 void bn_sub_modulus(u8
*a
, u8
*N
, u32 n
);
22 void bn_add(u8
*d
, u8
*a
, u8
*b
, u8
*N
, u32 n
);
23 void bn_mul(u8
*d
, u8
*a
, u8
*b
, u8
*N
, u32 n
);
24 void bn_inv(u8
*d
, u8
*a
, u8
*N
, u32 n
); // only for prime N
25 void bn_exp(u8
*d
, u8
*a
, u8
*N
, u32 n
, u8
*e
, u32 en
);
28 void md5(u8
*data
, u32 len
, u8
*hash
);
29 void sha(u8
*data
, u32 len
, u8
*hash
);
30 void get_key(const char *name
, u8
*key
, u32 len
);
31 void aes_cbc_dec(u8
*key
, u8
*iv
, u8
*in
, u32 len
, u8
*out
);
32 void decrypt_title_key(u8
*tik
, u8
*title_key
);
33 int check_cert_chain(u8
*data
, u32 data_len
, u8
*cert
, u32 cert_len
);
34 int check_ec(u8
*ng
, u8
*ap
, u8
*sig
, u8
*sig_hash
);
35 int check_ecdsa(u8
*Q
, u8
*R
, u8
*S
, u8
*hash
);
38 void do_yaz0(u8
*in
, u32 in_size
, u8
*out
, u32 out_size
);
41 void fatal(const char *s
, ...);
44 void print_bytes(u8
*x
, u32 n
);
45 void hexdump(u8
*x
, u32 n
);
46 void dump_tmd(u8
*tmd
);