]> git.saurik.com Git - apple/xnu.git/blobdiff - EXTERNAL_HEADERS/corecrypto/ccdigest.h
xnu-4903.221.2.tar.gz
[apple/xnu.git] / EXTERNAL_HEADERS / corecrypto / ccdigest.h
index a1b178a6018f5c7f2a1223dd77606ff2e22d54e5..52ee15123b6e0542514f79414b871fa559fd5414 100644 (file)
 
 /* To malloc a digest context for a given di, use malloc(ccdigest_di_size(di))
    and assign the result to a pointer to a struct ccdigest_ctx. */
-#if CORECRYPTO_USE_TRANSPARENT_UNION
-struct ccdigest_ctx {
-    union {
-        uint8_t u8;
-        uint32_t u32;
-        uint64_t u64;
-        cc_unit ccn;
-    } state;
-} CC_ALIGNED(8);
-
-typedef union {
-    struct ccdigest_ctx *hdr;
-} ccdigest_ctx_t __attribute__((transparent_union));
-
-struct ccdigest_state {
-    union {
-        uint8_t u8;
-        uint32_t u32;
-        uint64_t u64;
-        cc_unit ccn;
-    } state;
-} CC_ALIGNED(8);
-
-typedef union {
-    struct ccdigest_state *hdr;
-    struct ccdigest_ctx *_ctx;
-    ccdigest_ctx_t _ctxt;
-} ccdigest_state_t __attribute__((transparent_union));
-#else //=======================================================
 struct ccdigest_ctx {
     union {
         uint8_t u8;
@@ -66,8 +37,6 @@ struct ccdigest_state {
 } CC_ALIGNED(8);
 
 typedef struct ccdigest_state *ccdigest_state_t;
-#endif //=======================================================
-
 
 struct ccdigest_info {
     size_t output_size;
@@ -99,40 +68,22 @@ struct ccdigest_info {
 #define ccdigest_di_clear(_di_, _name_) cc_clear(ccdigest_di_size(_di_), _name_)
 
 /* Digest context field accessors.  Consider the implementation private. */
-#if CORECRYPTO_USE_TRANSPARENT_UNION
-#define ccdigest_state(_di_, _ctx_)      ((struct ccdigest_state *)(&((ccdigest_ctx_t)(_ctx_)).hdr->state.u8 + sizeof(uint64_t)))
-#else
 #define ccdigest_state(_di_, _ctx_)      ((struct ccdigest_state *)(&((ccdigest_ctx_t)(_ctx_))->state.u8 + sizeof(uint64_t)))
-#endif
 
 #define ccdigest_state_u8(_di_, _ctx_)   ccdigest_u8(ccdigest_state((_di_), (_ctx_)))
 #define ccdigest_state_u32(_di_, _ctx_)  ccdigest_u32(ccdigest_state((_di_), (_ctx_)))
 #define ccdigest_state_u64(_di_, _ctx_)  ccdigest_u64(ccdigest_state((_di_), (_ctx_)))
 #define ccdigest_state_ccn(_di_, _ctx_)  ccdigest_ccn(ccdigest_state((_di_), (_ctx_)))
 
-#if CORECRYPTO_USE_TRANSPARENT_UNION
-#define ccdigest_nbits(_di_, _ctx_)      (((uint64_t *)(&((ccdigest_ctx_t)(_ctx_)).hdr->state.u8))[0])
-#define ccdigest_data(_di_, _ctx_)       (&((ccdigest_ctx_t)(_ctx_)).hdr->state.u8 + (_di_)->state_size + sizeof(uint64_t))
-#define ccdigest_num(_di_, _ctx_)        (((unsigned int *)(&((ccdigest_ctx_t)(_ctx_)).hdr->state.u8 + (_di_)->state_size + sizeof(uint64_t) + (_di_)->block_size))[0])
-#else
 #define ccdigest_nbits(_di_, _ctx_)      (((uint64_t *)(&((ccdigest_ctx_t)(_ctx_))->state.u8))[0])
 #define ccdigest_data(_di_, _ctx_)       (&((ccdigest_ctx_t)(_ctx_))->state.u8 + (_di_)->state_size + sizeof(uint64_t))
 #define ccdigest_num(_di_, _ctx_)        (((unsigned int *)(&((ccdigest_ctx_t)(_ctx_))->state.u8 + (_di_)->state_size + sizeof(uint64_t) + (_di_)->block_size))[0])
-#endif
 
-#if CORECRYPTO_USE_TRANSPARENT_UNION
-/* Digest state field accessors.  Consider the implementation private. */
-#define ccdigest_u8(_state_)             (&((ccdigest_state_t)(_state_)).hdr->state.u8)
-#define ccdigest_u32(_state_)            (&((ccdigest_state_t)(_state_)).hdr->state.u32)
-#define ccdigest_u64(_state_)            (&((ccdigest_state_t)(_state_)).hdr->state.u64)
-#define ccdigest_ccn(_state_)            (&((ccdigest_state_t)(_state_)).hdr->state.ccn)
-#else
 /* Digest state field accessors.  Consider the implementation private. */
 #define ccdigest_u8(_state_)             (&((ccdigest_state_t)(_state_))->state.u8)
 #define ccdigest_u32(_state_)            (&((ccdigest_state_t)(_state_))->state.u32)
 #define ccdigest_u64(_state_)            (&((ccdigest_state_t)(_state_))->state.u64)
 #define ccdigest_ccn(_state_)            (&((ccdigest_state_t)(_state_))->state.ccn)
-#endif
 
 /* We could just use memcpy instead of this special macro, but this allows us
    to use the optimized ccn_set() assembly routine if we have one, which for
@@ -156,23 +107,6 @@ void ccdigest_final(const struct ccdigest_info *di, ccdigest_ctx_t ctx, unsigned
 void ccdigest(const struct ccdigest_info *di, size_t len,
               const void *data, void *digest);
 
-/* test functions */
-int ccdigest_test(const struct ccdigest_info *di, size_t len,
-              const void *data, const void *digest);
-
-int ccdigest_test_chunk(const struct ccdigest_info *di, size_t len,
-                        const void *data, const void *digest, size_t chunk);
-
-struct ccdigest_vector {
-    size_t len;
-    const void *message;
-    const void *digest;
-};
-
-int ccdigest_test_vector(const struct ccdigest_info *di, const struct ccdigest_vector *v);
-int ccdigest_test_chunk_vector(const struct ccdigest_info *di, const struct ccdigest_vector *v, size_t chunk);
-
-
 #define OID_DEF(_VALUE_)  ((const unsigned char *)_VALUE_)
 
 #define CC_DIGEST_OID_MD2       OID_DEF("\x06\x08\x2A\x86\x48\x86\xF7\x0D\x02\x02")