UDK 3.2.7 C/C++ API Reference
rtl/digest.h
Go to the documentation of this file.
00001 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
00002 /*************************************************************************
00003  *
00004  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
00005  *
00006  * Copyright 2000, 2010 Oracle and/or its affiliates.
00007  *
00008  * OpenOffice.org - a multi-platform office productivity suite
00009  *
00010  * This file is part of OpenOffice.org.
00011  *
00012  * OpenOffice.org is free software: you can redistribute it and/or modify
00013  * it under the terms of the GNU Lesser General Public License version 3
00014  * only, as published by the Free Software Foundation.
00015  *
00016  * OpenOffice.org is distributed in the hope that it will be useful,
00017  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00018  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00019  * GNU Lesser General Public License version 3 for more details
00020  * (a copy is included in the LICENSE file that accompanied this code).
00021  *
00022  * You should have received a copy of the GNU Lesser General Public License
00023  * version 3 along with OpenOffice.org.  If not, see
00024  * <http://www.openoffice.org/license.html>
00025  * for a copy of the LGPLv3 License.
00026  *
00027  ************************************************************************/
00028 
00029 #ifndef _RTL_DIGEST_H_
00030 #define _RTL_DIGEST_H_
00031 
00032 #include <sal/types.h>
00033 
00034 #ifdef __cplusplus
00035 extern "C" {
00036 #endif
00037 
00038 /*========================================================================
00039  *
00040  * rtlDigest.
00041  *
00042  *======================================================================*/
00045 typedef void* rtlDigest;
00046 
00047 
00051 enum __rtl_DigestAlgorithm
00052 {
00053     rtl_Digest_AlgorithmMD2,
00054     rtl_Digest_AlgorithmMD5,
00055     rtl_Digest_AlgorithmSHA,
00056     rtl_Digest_AlgorithmSHA1,
00057 
00058     rtl_Digest_AlgorithmHMAC_MD5,
00059     rtl_Digest_AlgorithmHMAC_SHA1,
00060 
00061     rtl_Digest_AlgorithmInvalid,
00062     rtl_Digest_Algorithm_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
00063 };
00064 
00067 typedef enum __rtl_DigestAlgorithm rtlDigestAlgorithm;
00068 
00069 
00072 enum __rtl_DigestError
00073 {
00074     rtl_Digest_E_None,
00075     rtl_Digest_E_Argument,
00076     rtl_Digest_E_Algorithm,
00077     rtl_Digest_E_BufferSize,
00078     rtl_Digest_E_Memory,
00079     rtl_Digest_E_Unknown,
00080     rtl_Digest_E_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
00081 };
00082 
00085 typedef enum __rtl_DigestError rtlDigestError;
00086 
00087 
00094 SAL_DLLPUBLIC rtlDigest SAL_CALL rtl_digest_create  (
00095     rtlDigestAlgorithm Algorithm
00096 ) SAL_THROW_EXTERN_C();
00097 
00098 
00104 SAL_DLLPUBLIC void SAL_CALL rtl_digest_destroy (
00105     rtlDigest Digest
00106 ) SAL_THROW_EXTERN_C();
00107 
00108 
00113 SAL_DLLPUBLIC rtlDigestAlgorithm SAL_CALL rtl_digest_queryAlgorithm (
00114     rtlDigest Digest
00115 ) SAL_THROW_EXTERN_C();
00116 
00117 
00122 SAL_DLLPUBLIC sal_uInt32 SAL_CALL rtl_digest_queryLength (
00123     rtlDigest Digest
00124 ) SAL_THROW_EXTERN_C();
00125 
00126 
00134 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_init (
00135     rtlDigest Digest,
00136     const sal_uInt8 *pData, sal_uInt32 nDatLen
00137 ) SAL_THROW_EXTERN_C();
00138 
00139 
00147 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_update (
00148     rtlDigest Digest,
00149     const void *pData, sal_uInt32 nDatLen
00150 ) SAL_THROW_EXTERN_C();
00151 
00152 
00165 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_get (
00166     rtlDigest Digest,
00167     sal_uInt8 *pBuffer, sal_uInt32 nBufLen
00168 ) SAL_THROW_EXTERN_C();
00169 
00170 /*========================================================================
00171  *
00172  * rtl_digest_MD2 interface.
00173  *
00174  *======================================================================*/
00175 #define RTL_DIGEST_LENGTH_MD2 16
00176 
00185 SAL_DLLPUBLIC rtlDigest SAL_CALL rtl_digest_createMD2 (void) SAL_THROW_EXTERN_C();
00186 
00187 
00191 SAL_DLLPUBLIC void SAL_CALL rtl_digest_destroyMD2 (
00192     rtlDigest Digest
00193 ) SAL_THROW_EXTERN_C();
00194 
00195 
00199 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_updateMD2 (
00200     rtlDigest Digest,
00201     const void *pData, sal_uInt32 nDatLen
00202 ) SAL_THROW_EXTERN_C();
00203 
00204 
00208 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_getMD2 (
00209     rtlDigest Digest,
00210     sal_uInt8 *pBuffer, sal_uInt32 nBufLen
00211 ) SAL_THROW_EXTERN_C();
00212 
00213 
00228 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_MD2 (
00229     const void *pData,   sal_uInt32 nDatLen,
00230     sal_uInt8  *pBuffer, sal_uInt32 nBufLen
00231 ) SAL_THROW_EXTERN_C();
00232 
00233 /*========================================================================
00234  *
00235  * rtl_digest_MD5 interface.
00236  *
00237  *======================================================================*/
00238 #define RTL_DIGEST_LENGTH_MD5 16
00239 
00248 SAL_DLLPUBLIC rtlDigest SAL_CALL rtl_digest_createMD5 (void) SAL_THROW_EXTERN_C();
00249 
00250 
00254 SAL_DLLPUBLIC void SAL_CALL rtl_digest_destroyMD5 (
00255     rtlDigest Digest
00256 ) SAL_THROW_EXTERN_C();
00257 
00258 
00262 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_updateMD5 (
00263     rtlDigest Digest,
00264     const void *pData, sal_uInt32 nDatLen
00265 ) SAL_THROW_EXTERN_C();
00266 
00267 
00271 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_getMD5 (
00272     rtlDigest Digest,
00273     sal_uInt8 *pBuffer, sal_uInt32 nBufLen
00274 ) SAL_THROW_EXTERN_C();
00275 
00276 
00284 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_rawMD5 (
00285     rtlDigest Digest,
00286     sal_uInt8 *pBuffer, sal_uInt32 nBufLen
00287 ) SAL_THROW_EXTERN_C();
00288 
00289 
00304 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_MD5 (
00305     const void *pData,   sal_uInt32 nDatLen,
00306     sal_uInt8  *pBuffer, sal_uInt32 nBufLen
00307 ) SAL_THROW_EXTERN_C();
00308 
00309 /*========================================================================
00310  *
00311  * rtl_digest_SHA interface.
00312  *
00313  *======================================================================*/
00314 #define RTL_DIGEST_LENGTH_SHA 20
00315 
00324 SAL_DLLPUBLIC rtlDigest SAL_CALL rtl_digest_createSHA (void) SAL_THROW_EXTERN_C();
00325 
00326 
00330 SAL_DLLPUBLIC void SAL_CALL rtl_digest_destroySHA (
00331     rtlDigest Digest
00332 ) SAL_THROW_EXTERN_C();
00333 
00334 
00338 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_updateSHA (
00339     rtlDigest Digest,
00340     const void *pData, sal_uInt32 nDatLen
00341 ) SAL_THROW_EXTERN_C();
00342 
00343 
00347 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_getSHA (
00348     rtlDigest Digest,
00349     sal_uInt8 *pBuffer, sal_uInt32 nBufLen
00350 ) SAL_THROW_EXTERN_C();
00351 
00352 
00367 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_SHA (
00368     const void *pData,   sal_uInt32 nDatLen,
00369     sal_uInt8  *pBuffer, sal_uInt32 nBufLen
00370 ) SAL_THROW_EXTERN_C();
00371 
00372 /*========================================================================
00373  *
00374  * rtl_digest_SHA1 interface.
00375  *
00376  *======================================================================*/
00377 #define RTL_DIGEST_LENGTH_SHA1 20
00378 
00387 SAL_DLLPUBLIC rtlDigest SAL_CALL rtl_digest_createSHA1 (void) SAL_THROW_EXTERN_C();
00388 
00389 
00393 SAL_DLLPUBLIC void SAL_CALL rtl_digest_destroySHA1 (
00394     rtlDigest Digest
00395 ) SAL_THROW_EXTERN_C();
00396 
00397 
00401 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_updateSHA1 (
00402     rtlDigest Digest,
00403     const void *pData, sal_uInt32 nDatLen
00404 ) SAL_THROW_EXTERN_C();
00405 
00406 
00410 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_getSHA1 (
00411     rtlDigest Digest,
00412     sal_uInt8 *pBuffer, sal_uInt32 nBufLen
00413 ) SAL_THROW_EXTERN_C();
00414 
00415 
00430 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_SHA1 (
00431     const void *pData,   sal_uInt32 nDatLen,
00432     sal_uInt8  *pBuffer, sal_uInt32 nBufLen
00433 ) SAL_THROW_EXTERN_C();
00434 
00435 /*========================================================================
00436  *
00437  * rtl_digest_HMAC_MD5 interface.
00438  *
00439  *======================================================================*/
00440 #define RTL_DIGEST_LENGTH_HMAC_MD5 RTL_DIGEST_LENGTH_MD5
00441 
00450 SAL_DLLPUBLIC rtlDigest SAL_CALL rtl_digest_createHMAC_MD5 (void) SAL_THROW_EXTERN_C();
00451 
00452 
00456 SAL_DLLPUBLIC void SAL_CALL rtl_digest_destroyHMAC_MD5 (
00457     rtlDigest Digest
00458 ) SAL_THROW_EXTERN_C();
00459 
00460 
00470 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_initHMAC_MD5 (
00471     rtlDigest Digest,
00472     const sal_uInt8 *pKeyData, sal_uInt32 nKeyLen
00473 ) SAL_THROW_EXTERN_C();
00474 
00475 
00479 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_updateHMAC_MD5 (
00480     rtlDigest Digest,
00481     const void *pData, sal_uInt32 nDatLen
00482 ) SAL_THROW_EXTERN_C();
00483 
00484 
00488 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_getHMAC_MD5 (
00489     rtlDigest Digest,
00490     sal_uInt8 *pBuffer, sal_uInt32 nBufLen
00491 ) SAL_THROW_EXTERN_C();
00492 
00493 
00511 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_HMAC_MD5 (
00512     const sal_uInt8 *pKeyData, sal_uInt32 nKeyLen,
00513     const void      *pData,    sal_uInt32 nDatLen,
00514     sal_uInt8       *pBuffer,  sal_uInt32 nBufLen
00515 ) SAL_THROW_EXTERN_C();
00516 
00517 /*========================================================================
00518  *
00519  * rtl_digest_HMAC_SHA1 interface.
00520  *
00521  *======================================================================*/
00522 #define RTL_DIGEST_LENGTH_HMAC_SHA1 RTL_DIGEST_LENGTH_SHA1
00523 
00534 SAL_DLLPUBLIC rtlDigest SAL_CALL rtl_digest_createHMAC_SHA1 (void) SAL_THROW_EXTERN_C();
00535 
00536 
00540 SAL_DLLPUBLIC void SAL_CALL rtl_digest_destroyHMAC_SHA1 (
00541     rtlDigest Digest
00542 ) SAL_THROW_EXTERN_C();
00543 
00544 
00554 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_initHMAC_SHA1 (
00555     rtlDigest Digest,
00556     const sal_uInt8 *pKeyData, sal_uInt32 nKeyLen
00557 ) SAL_THROW_EXTERN_C();
00558 
00559 
00563 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_updateHMAC_SHA1 (
00564     rtlDigest Digest,
00565     const void *pData, sal_uInt32 nDatLen
00566 ) SAL_THROW_EXTERN_C();
00567 
00568 
00572 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_getHMAC_SHA1 (
00573     rtlDigest Digest,
00574     sal_uInt8 *pBuffer, sal_uInt32 nBufLen
00575 ) SAL_THROW_EXTERN_C();
00576 
00577 
00595 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_HMAC_SHA1 (
00596     const sal_uInt8 *pKeyData, sal_uInt32 nKeyLen,
00597     const void      *pData,    sal_uInt32 nDatLen,
00598     sal_uInt8       *pBuffer,  sal_uInt32 nBufLen
00599 ) SAL_THROW_EXTERN_C();
00600 
00601 /*========================================================================
00602  *
00603  * rtl_digest_PBKDF2 interface.
00604  *
00605  *======================================================================*/
00622 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_PBKDF2 (
00623     sal_uInt8       *pKeyData , sal_uInt32 nKeyLen,
00624     const sal_uInt8 *pPassData, sal_uInt32 nPassLen,
00625     const sal_uInt8 *pSaltData, sal_uInt32 nSaltLen,
00626     sal_uInt32       nCount
00627 ) SAL_THROW_EXTERN_C();
00628 
00629 /*========================================================================
00630  *
00631  * The End.
00632  *
00633  *======================================================================*/
00634 
00635 #ifdef __cplusplus
00636 }
00637 #endif
00638 
00639 #endif /* _RTL_DIGEST_H_ */
00640 
00641 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines