UDK 3.2.7 C/C++ API Reference
|
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: */