aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/modes
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2014-12-07 23:53:22 +0000
committerMatt Caswell <matt@openssl.org>2014-12-08 10:29:03 +0000
commit3feb63054a981528e77a4a8f58a822c8dff4f4c5 (patch)
treed74b62347b5bac22531d2c4d64f6cb53277e0f82 /crypto/modes
parente4bbee963348414a8f5e75dc7d23c3e30c72a860 (diff)
downloadopenssl-3feb63054a981528e77a4a8f58a822c8dff4f4c5.tar.gz
Added OPENSSL_NO_OCB guards
Reviewed-by: Tim Hudson <tjh@openssl.org>
Diffstat (limited to 'crypto/modes')
-rw-r--r--crypto/modes/modes.h2
-rw-r--r--crypto/modes/modes_lcl.h7
-rw-r--r--crypto/modes/ocb128.c4
3 files changed, 11 insertions, 2 deletions
diff --git a/crypto/modes/modes.h b/crypto/modes/modes.h
index e1ebd45a36..3fb1b4b58b 100644
--- a/crypto/modes/modes.h
+++ b/crypto/modes/modes.h
@@ -152,6 +152,7 @@ size_t CRYPTO_128_unwrap_pad(void *key, const unsigned char *icv,
unsigned char *out,
const unsigned char *in, size_t inlen, block128_f block);
+#ifndef OPENSSL_NO_OCB
typedef struct ocb128_context OCB128_CONTEXT;
OCB128_CONTEXT *CRYPTO_ocb128_new(void *keyenc, void *keydec, block128_f encrypt, block128_f decrypt);
@@ -172,6 +173,7 @@ int CRYPTO_ocb128_finish(OCB128_CONTEXT *ctx,const unsigned char *tag,
size_t len);
int CRYPTO_ocb128_tag(OCB128_CONTEXT *ctx, unsigned char *tag, size_t len);
void CRYPTO_ocb128_cleanup(OCB128_CONTEXT *ctx);
+#endif /* OPENSSL_NO_ECB */
#ifdef __cplusplus
}
diff --git a/crypto/modes/modes_lcl.h b/crypto/modes/modes_lcl.h
index 181382510d..1d8315554d 100644
--- a/crypto/modes/modes_lcl.h
+++ b/crypto/modes/modes_lcl.h
@@ -136,20 +136,22 @@ struct ccm128_context {
void *key;
};
+#ifndef OPENSSL_NO_OCB
+
#ifdef STRICT_ALIGNMENT
typedef struct {
unsigned char a[16];
} OCB_BLOCK;
# define ocb_block16_xor(in1,in2,out) \
ocb_block_xor((in1)->a,(in2)->a,16,(out)->a)
-#else
+#else /* STRICT_ALIGNMENT */
typedef struct {
u64 a;
u64 b;
} OCB_BLOCK;
# define ocb_block16_xor(in1,in2,out) \
(out)->a=(in1)->a^(in2)->a; (out)->b=(in1)->b^(in2)->b;
-#endif
+#endif /* STRICT_ALIGNMENT */
struct ocb128_context {
/* Need both encrypt and decrypt key schedules for decryption */
@@ -175,3 +177,4 @@ struct ocb128_context {
OCB_BLOCK checksum;
};
+#endif /* OPENSSL_NO_OCB */
diff --git a/crypto/modes/ocb128.c b/crypto/modes/ocb128.c
index eca12d7152..ef8b2f4b66 100644
--- a/crypto/modes/ocb128.c
+++ b/crypto/modes/ocb128.c
@@ -51,6 +51,8 @@
#include <openssl/crypto.h>
#include "modes_lcl.h"
+#ifndef OPENSSL_NO_OCB
+
union ublock {
unsigned char *chrblk;
OCB_BLOCK *ocbblk;
@@ -585,3 +587,5 @@ void CRYPTO_ocb128_cleanup(OCB128_CONTEXT * ctx)
OPENSSL_cleanse(ctx, sizeof(*ctx));
}
}
+
+#endif /* OPENSSL_NO_OCB */