changeset 20597:261d2ff2e173

lib-dcrypt: make decrypt_istream format and flags visible
author Martti Rannanjärvi <martti.rannanjarvi@dovecot.fi>
date Sat, 06 Aug 2016 22:12:13 +0300
parents 9a2ac2a69648
children 5b6e44fc3626
files src/lib-dcrypt/istream-decrypt.c src/lib-dcrypt/istream-decrypt.h
diffstat 2 files changed, 20 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-dcrypt/istream-decrypt.c	Sat Aug 06 22:07:00 2016 +0300
+++ b/src/lib-dcrypt/istream-decrypt.c	Sat Aug 06 22:12:13 2016 +0300
@@ -36,12 +36,19 @@
 	struct dcrypt_context_symmetric *ctx_sym;
 	struct dcrypt_context_hmac *ctx_mac;
 
-	enum {
-		DECRYPT_FORMAT_V1,
-		DECRYPT_FORMAT_V2
-	} format;
+	enum decrypt_istream_format format;
 };
 
+enum decrypt_istream_format i_stream_encrypt_get_format(const struct istream *input)
+{
+	return ((const struct decrypt_istream*)input->real_stream)->format;
+}
+
+enum io_stream_encrypt_flags i_stream_encrypt_get_flags(const struct istream *input)
+{
+	return ((const struct decrypt_istream*)input->real_stream)->flags;
+}
+
 static
 ssize_t i_stream_decrypt_read_header_v1(struct decrypt_istream *stream,
 	const unsigned char *data, size_t mlen)
--- a/src/lib-dcrypt/istream-decrypt.h	Sat Aug 06 22:07:00 2016 +0300
+++ b/src/lib-dcrypt/istream-decrypt.h	Sat Aug 06 22:12:13 2016 +0300
@@ -4,6 +4,11 @@
 struct dcrypt_private_key;
 struct dcrypt_context_symmetric;
 
+enum decrypt_istream_format {
+	DECRYPT_FORMAT_V1,
+	DECRYPT_FORMAT_V2
+};
+
 /* Look for a private key for a specified public key digest and set it to
    priv_key_r. Returns 1 if ok, 0 if key doesn't exist, -1 on internal error. */
 typedef int
@@ -27,4 +32,8 @@
 i_stream_create_decrypt_callback(struct istream *input,
 				 i_stream_decrypt_get_key_callback_t *callback,
 				 void *context);
+
+enum decrypt_istream_format i_stream_encrypt_get_format(const struct istream *input);
+enum io_stream_encrypt_flags i_stream_encrypt_get_flags(const struct istream *input);
+
 #endif