Use word "library" in the source file headers
[libquvi.git] / src / gcrypt / crypto.h
blob9958e25e56b2c0a07cf3d630e4b6298cdb407163
1 /* libquvi
2 * Copyright (C) 2013 Toni Gundogdu <legatvs@gmail.com>
4 * This file is part of libquvi <http://quvi.sourceforge.net/>.
6 * This library is free software: you can redistribute it and/or
7 * modify it under the terms of the GNU Affero General Public
8 * License as published by the Free Software Foundation, either
9 * version 3 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU Affero General Public License for more details.
16 * You should have received a copy of the GNU Affero General
17 * Public License along with this library. If not, see
18 * <http://www.gnu.org/licenses/>.
21 #ifndef crypto_h
23 typedef enum
25 CRYPTO_MODE_ENCRYPT,
26 CRYPTO_MODE_DECRYPT,
27 CRYPTO_MODE_HASH
28 } CryptoMode;
30 struct crypto_s
32 struct
34 gboolean should_pad;
35 gcry_cipher_hd_t h;
36 gsize blklen;
37 gsize keylen;
38 guint flags;
39 gchar *key;
40 gint mode;
41 } cipher;
42 struct
44 guchar *data;
45 gsize dlen;
46 } out;
47 CryptoMode mode;
48 gchar *errmsg;
49 gint algo;
50 gint rc;
53 typedef struct crypto_s *crypto_t;
55 crypto_t crypto_new(const gchar*, const CryptoMode, gchar*,
56 const gint, const guint);
57 void crypto_free(crypto_t);
59 gint crypto_exec(crypto_t, const guchar*, const gsize);
61 void crypto_dump(const gchar*, const guchar*, const gsize);
62 gboolean crypto_ok(crypto_t);
64 gchar *crypto_bytes2hex(const guchar*, const gsize);
65 guchar *crypto_hex2bytes(const gchar*, gsize*);
67 #endif /* crypto_h */
69 /* vim: set ts=2 sw=2 tw=72 expandtab: */