diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2013-04-05 12:08:49 +0200 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2013-04-05 12:08:49 +0200 |
commit | 0cee769fcdc9716ccb2a60b6473062a60f640bb3 (patch) | |
tree | 72205eed0e6d570bda683cdbbc37d17a0f3a21aa /runtime/libgcry.h | |
parent | 0f87c631e7eac2ccbd36cd875d64de29dd7c714c (diff) | |
download | rsyslog-0cee769fcdc9716ccb2a60b6473062a60f640bb3.tar.gz rsyslog-0cee769fcdc9716ccb2a60b6473062a60f640bb3.tar.bz2 rsyslog-0cee769fcdc9716ccb2a60b6473062a60f640bb3.zip |
log encryption: initial PoC implementation
rough baseline, needs to be extended for actual use.
Diffstat (limited to 'runtime/libgcry.h')
-rw-r--r-- | runtime/libgcry.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/runtime/libgcry.h b/runtime/libgcry.h new file mode 100644 index 00000000..0405162f --- /dev/null +++ b/runtime/libgcry.h @@ -0,0 +1,47 @@ +/* libgcry.h - rsyslog's guardtime support library + * + * Copyright 2013 Adiscon GmbH. + * + * This file is part of rsyslog. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * -or- + * see COPYING.ASL20 in the source distribution + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef INCLUDED_LIBGCRY_H +#define INCLUDED_LIBGCRY_H +#include <gt_base.h> + + +struct gcryctx_s { + void *usrptr; /* for error function */ +}; +typedef struct gcryctx_s *gcryctx; +typedef struct gcryfile_s *gcryfile; + +/* this describes a file, as far as libgcry is concerned */ +struct gcryfile_s { + gcry_cipher_hd_t chd; /* cypher handle */ + size_t blkLength; /* size of low-level crypto block */ + gcryctx ctx; +}; + +int rsgcryInit(void); +void rsgcryExit(void); +gcryctx gcryCtxNew(void); +void rsgcryCtxDel(gcryctx ctx); +int gcryfileDestruct(gcryfile gf); +rsRetVal rsgcryInitCrypt(gcryctx ctx, gcryfile *pgf, int gcry_mode, char * iniVector); +int rsgcryEncrypt(gcryfile pF, uchar *buf, size_t *len); + +#endif /* #ifndef INCLUDED_LIBGCRY_H */ |