Root/
1 | #ifndef _CRYPTO_LRW_H |
2 | #define _CRYPTO_LRW_H |
3 | |
4 | #include <crypto/b128ops.h> |
5 | |
6 | struct scatterlist; |
7 | struct gf128mul_64k; |
8 | struct blkcipher_desc; |
9 | |
10 | #define LRW_BLOCK_SIZE 16 |
11 | |
12 | struct lrw_table_ctx { |
13 | /* optimizes multiplying a random (non incrementing, as at the |
14 | * start of a new sector) value with key2, we could also have |
15 | * used 4k optimization tables or no optimization at all. In the |
16 | * latter case we would have to store key2 here */ |
17 | struct gf128mul_64k *table; |
18 | /* stores: |
19 | * key2*{ 0,0,...0,0,0,0,1 }, key2*{ 0,0,...0,0,0,1,1 }, |
20 | * key2*{ 0,0,...0,0,1,1,1 }, key2*{ 0,0,...0,1,1,1,1 } |
21 | * key2*{ 0,0,...1,1,1,1,1 }, etc |
22 | * needed for optimized multiplication of incrementing values |
23 | * with key2 */ |
24 | be128 mulinc[128]; |
25 | }; |
26 | |
27 | int lrw_init_table(struct lrw_table_ctx *ctx, const u8 *tweak); |
28 | void lrw_free_table(struct lrw_table_ctx *ctx); |
29 | |
30 | struct lrw_crypt_req { |
31 | be128 *tbuf; |
32 | unsigned int tbuflen; |
33 | |
34 | struct lrw_table_ctx *table_ctx; |
35 | void *crypt_ctx; |
36 | void (*crypt_fn)(void *ctx, u8 *blks, unsigned int nbytes); |
37 | }; |
38 | |
39 | int lrw_crypt(struct blkcipher_desc *desc, struct scatterlist *dst, |
40 | struct scatterlist *src, unsigned int nbytes, |
41 | struct lrw_crypt_req *req); |
42 | |
43 | #endif /* _CRYPTO_LRW_H */ |
44 |
Branches:
ben-wpan
ben-wpan-stefan
javiroman/ks7010
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9