1/* 2 * Copyright (c) 2000-2001,2005-2007,2010-2012,2014 Apple Inc. All Rights Reserved. 3 * 4 * @APPLE_LICENSE_HEADER_START@ 5 * 6 * This file contains Original Code and/or Modifications of Original Code 7 * as defined in and that are subject to the Apple Public Source License 8 * Version 2.0 (the 'License'). You may not use this file except in 9 * compliance with the License. Please obtain a copy of the License at 10 * http://www.opensource.apple.com/apsl/ and read it before using this 11 * file. 12 * 13 * The Original Code and all software distributed under the License are 14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 18 * Please see the License for the specific language governing rights and 19 * limitations under the License. 20 * 21 * @APPLE_LICENSE_HEADER_END@ 22 */ 23 24/* 25 * sslUtils.h - - Misc. OS independant SSL utility functions 26 */ 27 28#ifndef _SSLUTILS_H_ 29#define _SSLUTILS_H_ 1 30 31#include "sslTypes.h" 32 33#ifdef __cplusplus 34extern "C" { 35#endif 36 37uint32_t SSLDecodeInt( 38 const uint8_t * p, 39 size_t length); 40uint8_t *SSLEncodeInt( 41 uint8_t *p, 42 size_t value, 43 size_t length); 44 45/* Same, but the value to encode is a size_t */ 46size_t SSLDecodeSize( 47 const uint8_t * p, 48 size_t length); 49uint8_t *SSLEncodeSize( 50 uint8_t *p, 51 size_t value, 52 size_t length); 53 54/* Same but for 64bits int */ 55uint8_t* SSLEncodeUInt64( 56 uint8_t *p, 57 sslUint64 value); 58void IncrementUInt64( 59 sslUint64 *v); 60void SSLDecodeUInt64( 61 const uint8_t *p, 62 size_t length, 63 sslUint64 *v); 64 65static inline 66int SSLHandshakeHeaderSize(SSLRecord *rec) 67{ 68 if(rec->protocolVersion==DTLS_Version_1_0) 69 return 12; 70 else 71 return 4; 72} 73 74#ifndef NDEBUG 75extern const char *protocolVersStr(SSLProtocolVersion prot); 76#endif 77 78#ifdef __cplusplus 79} 80#endif 81 82#endif 83