1*b5a2d845SHai-May Chao /* 2*b5a2d845SHai-May Chao * CDDL HEADER START 3*b5a2d845SHai-May Chao * 4*b5a2d845SHai-May Chao * The contents of this file are subject to the terms of the 5*b5a2d845SHai-May Chao * Common Development and Distribution License (the "License"). 6*b5a2d845SHai-May Chao * You may not use this file except in compliance with the License. 7*b5a2d845SHai-May Chao * 8*b5a2d845SHai-May Chao * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*b5a2d845SHai-May Chao * or http://www.opensolaris.org/os/licensing. 10*b5a2d845SHai-May Chao * See the License for the specific language governing permissions 11*b5a2d845SHai-May Chao * and limitations under the License. 12*b5a2d845SHai-May Chao * 13*b5a2d845SHai-May Chao * When distributing Covered Code, include this CDDL HEADER in each 14*b5a2d845SHai-May Chao * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*b5a2d845SHai-May Chao * If applicable, add the following below this CDDL HEADER, with the 16*b5a2d845SHai-May Chao * fields enclosed by brackets "[]" replaced with your own identifying 17*b5a2d845SHai-May Chao * information: Portions Copyright [yyyy] [name of copyright owner] 18*b5a2d845SHai-May Chao * 19*b5a2d845SHai-May Chao * CDDL HEADER END 20*b5a2d845SHai-May Chao */ 21*b5a2d845SHai-May Chao /* 22*b5a2d845SHai-May Chao * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 23*b5a2d845SHai-May Chao * Use is subject to license terms. 24*b5a2d845SHai-May Chao */ 25*b5a2d845SHai-May Chao 26*b5a2d845SHai-May Chao #ifndef _SHA2_IMPL_H 27*b5a2d845SHai-May Chao #define _SHA2_IMPL_H 28*b5a2d845SHai-May Chao 29*b5a2d845SHai-May Chao #ifdef __cplusplus 30*b5a2d845SHai-May Chao extern "C" { 31*b5a2d845SHai-May Chao #endif 32*b5a2d845SHai-May Chao 33*b5a2d845SHai-May Chao typedef enum { 34*b5a2d845SHai-May Chao SHA1_TYPE, 35*b5a2d845SHai-May Chao SHA256_TYPE, 36*b5a2d845SHai-May Chao SHA384_TYPE, 37*b5a2d845SHai-May Chao SHA512_TYPE 38*b5a2d845SHai-May Chao } sha2_mech_t; 39*b5a2d845SHai-May Chao 40*b5a2d845SHai-May Chao #ifdef _KERNEL 41*b5a2d845SHai-May Chao 42*b5a2d845SHai-May Chao /* 43*b5a2d845SHai-May Chao * Context for SHA2 mechanism. 44*b5a2d845SHai-May Chao */ 45*b5a2d845SHai-May Chao typedef struct sha2_ctx { 46*b5a2d845SHai-May Chao sha2_mech_type_t sc_mech_type; /* type of context */ 47*b5a2d845SHai-May Chao SHA2_CTX sc_sha2_ctx; /* SHA2 context */ 48*b5a2d845SHai-May Chao } sha2_ctx_t; 49*b5a2d845SHai-May Chao 50*b5a2d845SHai-May Chao /* 51*b5a2d845SHai-May Chao * Context for SHA2 HMAC and HMAC GENERAL mechanisms. 52*b5a2d845SHai-May Chao */ 53*b5a2d845SHai-May Chao typedef struct sha2_hmac_ctx { 54*b5a2d845SHai-May Chao sha2_mech_type_t hc_mech_type; /* type of context */ 55*b5a2d845SHai-May Chao uint32_t hc_digest_len; /* digest len in bytes */ 56*b5a2d845SHai-May Chao SHA2_CTX hc_icontext; /* inner SHA2 context */ 57*b5a2d845SHai-May Chao SHA2_CTX hc_ocontext; /* outer SHA2 context */ 58*b5a2d845SHai-May Chao } sha2_hmac_ctx_t; 59*b5a2d845SHai-May Chao 60*b5a2d845SHai-May Chao #endif 61*b5a2d845SHai-May Chao 62*b5a2d845SHai-May Chao #ifdef __cplusplus 63*b5a2d845SHai-May Chao } 64*b5a2d845SHai-May Chao #endif 65*b5a2d845SHai-May Chao 66*b5a2d845SHai-May Chao #endif /* _SHA2_IMPL_H */ 67