chiark / gitweb /
d12472ffe2dbd89d0da7886cc8d5886db6c13ce5
[chiark-tcl.git] / crypto / crypto.tct
1 # crypto - Tcl bindings for parts of the `nettle' crypto library
2 # Copyright 2006 Ian Jackson
3 #
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License as
6 # published by the Free Software Foundation; either version 2 of the
7 # License, or (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful, but
10 # WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 # General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public License
15 # along with this library; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
17 # 02110-1301, USA.
18
19
20 Table *hbcryptotoplevel TopLevel_Command
21         hbcrypto
22                 subcmd  enum(HBCrypto/_SubCommand, "hbcrypto subcommand")
23                 ...     obj
24
25 Table hbcrypto HBCrypto_SubCommand
26         pad
27                 op      enum(PadOp/, "hbytes pad subcommand")
28                 v       hbv
29                 blocksz obj
30                 meth    enum(PadMethodInfo/, "pad method")
31                 ...     methargs
32         blockcipher
33                 op      enum(BlockCipherOp/, "op")
34                 ...     obj
35         hash
36                 alg     enum(HashAlgInfo/, "hash alg")
37                 message hb
38                 =>      hb
39         hmac
40                 alg     enum(HashAlgInfo/, "hash alg for hmac")
41                 message hb
42                 key     obj
43                 ?maclen obj
44                 =>      hb
45         hash-prop
46                 prop    enum(HashAlgPropInfo/, "prop")
47                 alg     enum(HashAlgInfo/, "alg")
48                 =>      int
49
50 Table padmethodinfo PadMethodInfo
51         pkcs5
52                 =>      int
53         rfc2406
54                 nxthdr  obj
55                 =>      int
56
57 Table blockcipherop BlockCipherOp
58         e       1
59                 v       hbv
60                 alg     enum(BlockCipherAlgInfo/, "alg")
61                 key     obj
62                 mode    enum(BlockCipherModeInfo/, "mode")
63                 ?iv     hb
64                 =>      hb
65         d       0
66                 v       hbv
67                 alg     enum(BlockCipherAlgInfo/, "alg")
68                 key     obj
69                 mode    enum(BlockCipherModeInfo/, "mode")
70                 ?iv     hb
71                 =>      hb
72         mac     -1
73                 msg     hb
74                 alg     enum(BlockCipherAlgInfo/, "alg")
75                 key     obj
76                 mode    enum(BlockCipherModeInfo/, "mode")
77                 iv      hb
78                 =>      hb
79         prop    -1
80                 prop    enum(BlockCipherPropInfo/, "prop")
81                 alg     enum(BlockCipherAlgInfo/, "alg")
82                 =>      int
83
84 EntryExtra BlockCipherOp
85         int encrypt;