LibreOffice
LibreOffice 7.2 SDK C/C++ API Reference
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
digest.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  * Licensed to the Apache Software Foundation (ASF) under one or more
12  * contributor license agreements. See the NOTICE file distributed
13  * with this work for additional information regarding copyright
14  * ownership. The ASF licenses this file to you under the Apache
15  * License, Version 2.0 (the "License"); you may not use this file
16  * except in compliance with the License. You may obtain a copy of
17  * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 
20 /*
21  * This file is part of LibreOffice published API.
22  */
23 
24 #ifndef INCLUDED_RTL_DIGEST_H
25 #define INCLUDED_RTL_DIGEST_H
26 
27 #include "sal/config.h"
28 
29 #include "sal/saldllapi.h"
30 #include "sal/types.h"
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
38 typedef void* rtlDigest;
39 
40 
45 {
50 
53 
56 };
57 
61 
62 
66 {
74 };
75 
79 
80 
87 SAL_DLLPUBLIC rtlDigest SAL_CALL rtl_digest_create (
88  rtlDigestAlgorithm Algorithm
90 
91 
97 SAL_DLLPUBLIC void SAL_CALL rtl_digest_destroy (
98  rtlDigest Digest
100 
101 
106 SAL_DLLPUBLIC rtlDigestAlgorithm SAL_CALL rtl_digest_queryAlgorithm (
107  rtlDigest Digest
109 
110 
115 SAL_DLLPUBLIC sal_uInt32 SAL_CALL rtl_digest_queryLength (
116  rtlDigest Digest
118 
119 
127 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_init (
128  rtlDigest Digest,
129  const sal_uInt8 *pData, sal_uInt32 nDatLen
131 
132 
140 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_update (
141  rtlDigest Digest,
142  const void *pData, sal_uInt32 nDatLen
144 
145 
158 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_get (
159  rtlDigest Digest,
160  sal_uInt8 *pBuffer, sal_uInt32 nBufLen
162 
163 #define RTL_DIGEST_LENGTH_MD2 16
164 
173 SAL_DLLPUBLIC rtlDigest SAL_CALL rtl_digest_createMD2 (void) SAL_THROW_EXTERN_C();
174 
175 
179 SAL_DLLPUBLIC void SAL_CALL rtl_digest_destroyMD2 (
180  rtlDigest Digest
181 ) SAL_THROW_EXTERN_C();
182 
186 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_updateMD2 (
187  rtlDigest Digest,
188  const void *pData, sal_uInt32 nDatLen
189 ) SAL_THROW_EXTERN_C();
190 
194 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_getMD2 (
195  rtlDigest Digest,
196  sal_uInt8 *pBuffer, sal_uInt32 nBufLen
197 ) SAL_THROW_EXTERN_C();
198 
214 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_MD2 (
215  const void *pData, sal_uInt32 nDatLen,
216  sal_uInt8 *pBuffer, sal_uInt32 nBufLen
217 ) SAL_THROW_EXTERN_C();
218 
219 #define RTL_DIGEST_LENGTH_MD5 16
220 
229 SAL_DLLPUBLIC rtlDigest SAL_CALL rtl_digest_createMD5 (void) SAL_THROW_EXTERN_C();
230 
234 SAL_DLLPUBLIC void SAL_CALL rtl_digest_destroyMD5 (
235  rtlDigest Digest
236 ) SAL_THROW_EXTERN_C();
237 
241 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_updateMD5 (
242  rtlDigest Digest,
243  const void *pData, sal_uInt32 nDatLen
244 ) SAL_THROW_EXTERN_C();
245 
249 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_getMD5 (
250  rtlDigest Digest,
251  sal_uInt8 *pBuffer, sal_uInt32 nBufLen
252 ) SAL_THROW_EXTERN_C();
253 
262 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_rawMD5 (
263  rtlDigest Digest,
264  sal_uInt8 *pBuffer, sal_uInt32 nBufLen
265 ) SAL_THROW_EXTERN_C();
266 
282 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_MD5 (
283  const void *pData, sal_uInt32 nDatLen,
284  sal_uInt8 *pBuffer, sal_uInt32 nBufLen
285 ) SAL_THROW_EXTERN_C();
286 
287 #define RTL_DIGEST_LENGTH_SHA 20
288 
300 SAL_DLLPUBLIC rtlDigest SAL_CALL rtl_digest_createSHA (void) SAL_THROW_EXTERN_C();
301 
309 SAL_DLLPUBLIC void SAL_CALL rtl_digest_destroySHA (
310  rtlDigest Digest
311 ) SAL_THROW_EXTERN_C();
312 
313 
321 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_updateSHA (
322  rtlDigest Digest,
323  const void *pData, sal_uInt32 nDatLen
324 ) SAL_THROW_EXTERN_C();
325 
333 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_getSHA (
334  rtlDigest Digest,
335  sal_uInt8 *pBuffer, sal_uInt32 nBufLen
336 ) SAL_THROW_EXTERN_C();
337 
356 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_SHA (
357  const void *pData, sal_uInt32 nDatLen,
358  sal_uInt8 *pBuffer, sal_uInt32 nBufLen
359 ) SAL_THROW_EXTERN_C();
360 
361 /*========================================================================
362  *
363  * rtl_digest_SHA1 interface.
364  *
365  *======================================================================*/
366 #define RTL_DIGEST_LENGTH_SHA1 20
367 
379 SAL_DLLPUBLIC rtlDigest SAL_CALL rtl_digest_createSHA1 (void) SAL_THROW_EXTERN_C();
380 
389  rtlDigest Digest
390 ) SAL_THROW_EXTERN_C();
391 
399 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_updateSHA1 (
400  rtlDigest Digest,
401  const void *pData, sal_uInt32 nDatLen
402 ) SAL_THROW_EXTERN_C();
403 
411 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_getSHA1 (
412  rtlDigest Digest,
413  sal_uInt8 *pBuffer, sal_uInt32 nBufLen
414 ) SAL_THROW_EXTERN_C();
415 
434 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_SHA1 (
435  const void *pData, sal_uInt32 nDatLen,
436  sal_uInt8 *pBuffer, sal_uInt32 nBufLen
437 ) SAL_THROW_EXTERN_C();
438 
439 #define RTL_DIGEST_LENGTH_HMAC_MD5 RTL_DIGEST_LENGTH_MD5
440 
450 SAL_DLLPUBLIC rtlDigest SAL_CALL rtl_digest_createHMAC_MD5 (void) SAL_THROW_EXTERN_C();
451 
456  rtlDigest Digest
457 ) SAL_THROW_EXTERN_C();
458 
468 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_initHMAC_MD5 (
469  rtlDigest Digest,
470  const sal_uInt8 *pKeyData, sal_uInt32 nKeyLen
471 ) SAL_THROW_EXTERN_C();
472 
476 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_updateHMAC_MD5 (
477  rtlDigest Digest,
478  const void *pData, sal_uInt32 nDatLen
479 ) SAL_THROW_EXTERN_C();
480 
484 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_getHMAC_MD5 (
485  rtlDigest Digest,
486  sal_uInt8 *pBuffer, sal_uInt32 nBufLen
487 ) SAL_THROW_EXTERN_C();
488 
507 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_HMAC_MD5 (
508  const sal_uInt8 *pKeyData, sal_uInt32 nKeyLen,
509  const void *pData, sal_uInt32 nDatLen,
510  sal_uInt8 *pBuffer, sal_uInt32 nBufLen
511 ) SAL_THROW_EXTERN_C();
512 
513 #define RTL_DIGEST_LENGTH_HMAC_SHA1 RTL_DIGEST_LENGTH_SHA1
514 
528 SAL_DLLPUBLIC rtlDigest SAL_CALL rtl_digest_createHMAC_SHA1 (void) SAL_THROW_EXTERN_C();
529 
538  rtlDigest Digest
539 ) SAL_THROW_EXTERN_C();
540 
554 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_initHMAC_SHA1 (
555  rtlDigest Digest,
556  const sal_uInt8 *pKeyData, sal_uInt32 nKeyLen
557 ) SAL_THROW_EXTERN_C();
558 
566 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_updateHMAC_SHA1 (
567  rtlDigest Digest,
568  const void *pData, sal_uInt32 nDatLen
569 ) SAL_THROW_EXTERN_C();
570 
578 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_getHMAC_SHA1 (
579  rtlDigest Digest,
580  sal_uInt8 *pBuffer, sal_uInt32 nBufLen
581 ) SAL_THROW_EXTERN_C();
582 
604 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_HMAC_SHA1 (
605  const sal_uInt8 *pKeyData, sal_uInt32 nKeyLen,
606  const void *pData, sal_uInt32 nDatLen,
607  sal_uInt8 *pBuffer, sal_uInt32 nBufLen
608 ) SAL_THROW_EXTERN_C();
609 
631 SAL_DLLPUBLIC rtlDigestError SAL_CALL rtl_digest_PBKDF2 (
632  sal_uInt8 *pKeyData , sal_uInt32 nKeyLen,
633  const sal_uInt8 *pPassData, sal_uInt32 nPassLen,
634  const sal_uInt8 *pSaltData, sal_uInt32 nSaltLen,
635  sal_uInt32 nCount
636 ) SAL_THROW_EXTERN_C();
637 
638 #ifdef __cplusplus
639 }
640 #endif
641 
642 #endif // INCLUDED_RTL_DIGEST_H
643 
644 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
SAL_DLLPUBLIC rtlDigestError rtl_digest_SHA(const void *pData, sal_uInt32 nDatLen, sal_uInt8 *pBuffer, sal_uInt32 nBufLen) SAL_THROW_EXTERN_C()
Evaluate a SHA digest value from given data.
SAL_DLLPUBLIC rtlDigestError rtl_digest_updateMD5(rtlDigest Digest, const void *pData, sal_uInt32 nDatLen) SAL_THROW_EXTERN_C()
Update a MD5 digest with given data.
CPPU_DLLPUBLIC void SAL_THROW_EXTERN_C()
This method is called to wait for a reply of a previously sent request.
SAL_DLLPUBLIC void rtl_digest_destroy(rtlDigest Digest) SAL_THROW_EXTERN_C()
Destroy a digest handle.
SAL_DLLPUBLIC rtlDigestError rtl_digest_updateSHA1(rtlDigest Digest, const void *pData, sal_uInt32 nDatLen) SAL_THROW_EXTERN_C()
Update a SHA1 digest with given data.
enum __rtl_DigestAlgorithm rtlDigestAlgorithm
Digest Algorithm type.
Definition: digest.h:60
SAL_DLLPUBLIC rtlDigest rtl_digest_createHMAC_SHA1(void) SAL_THROW_EXTERN_C()
Create a HMAC_SHA1 digest handle.
enum __rtl_DigestError rtlDigestError
Error Code type.
Definition: digest.h:78
SAL_DLLPUBLIC rtlDigestError rtl_digest_getSHA1(rtlDigest Digest, sal_uInt8 *pBuffer, sal_uInt32 nBufLen) SAL_THROW_EXTERN_C()
Finalize a SHA1 digest and retrieve the digest value.
SAL_DLLPUBLIC void rtl_digest_destroySHA1(rtlDigest Digest) SAL_THROW_EXTERN_C()
Destroy a SHA1 digest handle.
SAL_DLLPUBLIC rtlDigestError rtl_digest_initHMAC_SHA1(rtlDigest Digest, const sal_uInt8 *pKeyData, sal_uInt32 nKeyLen) SAL_THROW_EXTERN_C()
Initialize a HMAC_SHA1 digest.
SAL_DLLPUBLIC rtlDigestError rtl_digest_SHA1(const void *pData, sal_uInt32 nDatLen, sal_uInt8 *pBuffer, sal_uInt32 nBufLen) SAL_THROW_EXTERN_C()
Evaluate a SHA1 digest value from given data.
SAL_DLLPUBLIC rtlDigestError rtl_digest_updateMD2(rtlDigest Digest, const void *pData, sal_uInt32 nDatLen) SAL_THROW_EXTERN_C()
Update a MD2 digest with given data.
SAL_DLLPUBLIC rtlDigestError rtl_digest_initHMAC_MD5(rtlDigest Digest, const sal_uInt8 *pKeyData, sal_uInt32 nKeyLen) SAL_THROW_EXTERN_C()
Initialize a HMAC_MD5 digest.
SAL_DLLPUBLIC rtlDigest rtl_digest_create(rtlDigestAlgorithm Algorithm) SAL_THROW_EXTERN_C()
Create a digest handle for the given algorithm.
SAL_DLLPUBLIC rtlDigestError rtl_digest_getSHA(rtlDigest Digest, sal_uInt8 *pBuffer, sal_uInt32 nBufLen) SAL_THROW_EXTERN_C()
Finalize a SHA digest and retrieve the digest value.
Definition: digest.h:54
Definition: digest.h:51
SAL_DLLPUBLIC rtlDigestError rtl_digest_HMAC_SHA1(const sal_uInt8 *pKeyData, sal_uInt32 nKeyLen, const void *pData, sal_uInt32 nDatLen, sal_uInt8 *pBuffer, sal_uInt32 nBufLen) SAL_THROW_EXTERN_C()
Evaluate a HMAC_SHA1 digest value from given data.
void * rtlDigest
Digest Handle opaque type.
Definition: digest.h:38
SAL_DLLPUBLIC rtlDigestError rtl_digest_init(rtlDigest Digest, const sal_uInt8 *pData, sal_uInt32 nDatLen) SAL_THROW_EXTERN_C()
Initialize a digest with given data.
SAL_DLLPUBLIC rtlDigestError rtl_digest_MD5(const void *pData, sal_uInt32 nDatLen, sal_uInt8 *pBuffer, sal_uInt32 nBufLen) SAL_THROW_EXTERN_C()
Evaluate a MD5 digest value from given data.
#define SAL_DLLPUBLIC
Definition: saldllapi.h:34
Definition: digest.h:52
SAL_DLLPUBLIC rtlDigestError rtl_digest_updateSHA(rtlDigest Digest, const void *pData, sal_uInt32 nDatLen) SAL_THROW_EXTERN_C()
Update a SHA digest with given data.
Definition: digest.h:72
SAL_DLLPUBLIC rtlDigestError rtl_digest_update(rtlDigest Digest, const void *pData, sal_uInt32 nDatLen) SAL_THROW_EXTERN_C()
Update a digest with given data.
SAL_DLLPUBLIC rtlDigest rtl_digest_createSHA1(void) SAL_THROW_EXTERN_C()
Create a SHA1 digest handle.
SAL_DLLPUBLIC rtlDigestError rtl_digest_HMAC_MD5(const sal_uInt8 *pKeyData, sal_uInt32 nKeyLen, const void *pData, sal_uInt32 nDatLen, sal_uInt8 *pBuffer, sal_uInt32 nBufLen) SAL_THROW_EXTERN_C()
Evaluate a HMAC_MD5 digest value from given data.
Definition: digest.h:46
SAL_DLLPUBLIC rtlDigestError rtl_digest_getHMAC_MD5(rtlDigest Digest, sal_uInt8 *pBuffer, sal_uInt32 nBufLen) SAL_THROW_EXTERN_C()
Finalize a HMAC_MD5 digest and retrieve the digest value.
Definition: digest.h:68
Definition: digest.h:69
SAL_DLLPUBLIC rtlDigestError rtl_digest_PBKDF2(sal_uInt8 *pKeyData, sal_uInt32 nKeyLen, const sal_uInt8 *pPassData, sal_uInt32 nPassLen, const sal_uInt8 *pSaltData, sal_uInt32 nSaltLen, sal_uInt32 nCount) SAL_THROW_EXTERN_C()
Password-Based Key Derivation Function.
Definition: digest.h:71
SAL_DLLPUBLIC rtlDigest rtl_digest_createHMAC_MD5(void) SAL_THROW_EXTERN_C()
Create a HMAC_MD5 digest handle.
SAL_DLLPUBLIC rtlDigestError rtl_digest_MD2(const void *pData, sal_uInt32 nDatLen, sal_uInt8 *pBuffer, sal_uInt32 nBufLen) SAL_THROW_EXTERN_C()
Evaluate a MD2 digest value from given data.
Definition: digest.h:73
Definition: digest.h:67
#define SAL_MAX_ENUM
Definition: types.h:205
__rtl_DigestError
Error Code enumeration.
Definition: digest.h:65
SAL_DLLPUBLIC void rtl_digest_destroyMD5(rtlDigest Digest) SAL_THROW_EXTERN_C()
Destroy a MD5 digest handle.
SAL_DLLPUBLIC sal_uInt32 rtl_digest_queryLength(rtlDigest Digest) SAL_THROW_EXTERN_C()
Query the length of a given digest.
unsigned char sal_uInt8
Definition: types.h:44
SAL_DLLPUBLIC void rtl_digest_destroyHMAC_SHA1(rtlDigest Digest) SAL_THROW_EXTERN_C()
Destroy a HMAC_SHA1 digest handle.
SAL_DLLPUBLIC rtlDigestError rtl_digest_getMD5(rtlDigest Digest, sal_uInt8 *pBuffer, sal_uInt32 nBufLen) SAL_THROW_EXTERN_C()
Finalize a MD5 digest and retrieve the digest value.
Definition: digest.h:48
SAL_DLLPUBLIC rtlDigestAlgorithm rtl_digest_queryAlgorithm(rtlDigest Digest) SAL_THROW_EXTERN_C()
Query the algorithm of a given digest.
SAL_DLLPUBLIC rtlDigestError rtl_digest_rawMD5(rtlDigest Digest, sal_uInt8 *pBuffer, sal_uInt32 nBufLen) SAL_THROW_EXTERN_C()
Retrieve the raw (not finalized) MD5 digest value.
SAL_DLLPUBLIC rtlDigestError rtl_digest_getHMAC_SHA1(rtlDigest Digest, sal_uInt8 *pBuffer, sal_uInt32 nBufLen) SAL_THROW_EXTERN_C()
Finalize a HMAC_SHA1 digest and retrieve the digest value.
SAL_DLLPUBLIC rtlDigestError rtl_digest_getMD2(rtlDigest Digest, sal_uInt8 *pBuffer, sal_uInt32 nBufLen) SAL_THROW_EXTERN_C()
Finalize a MD2 digest and retrieve the digest value.
SAL_DLLPUBLIC rtlDigestError rtl_digest_get(rtlDigest Digest, sal_uInt8 *pBuffer, sal_uInt32 nBufLen) SAL_THROW_EXTERN_C()
Finalize a digest and retrieve the digest value.
SAL_DLLPUBLIC void rtl_digest_destroySHA(rtlDigest Digest) SAL_THROW_EXTERN_C()
Destroy a SHA digest handle.
SAL_DLLPUBLIC void rtl_digest_destroyMD2(rtlDigest Digest) SAL_THROW_EXTERN_C()
Destroy a MD2 digest handle.
SAL_DLLPUBLIC rtlDigestError rtl_digest_updateHMAC_SHA1(rtlDigest Digest, const void *pData, sal_uInt32 nDatLen) SAL_THROW_EXTERN_C()
Update a HMAC_SHA1 digest with given data.
Definition: digest.h:70
SAL_DLLPUBLIC rtlDigest rtl_digest_createSHA(void) SAL_THROW_EXTERN_C()
Create a SHA digest handle.
Definition: digest.h:49
SAL_DLLPUBLIC rtlDigest rtl_digest_createMD2(void) SAL_THROW_EXTERN_C()
Create a MD2 digest handle.
__rtl_DigestAlgorithm
Digest Algorithm enumeration.
Definition: digest.h:44
Definition: digest.h:47
SAL_DLLPUBLIC rtlDigestError rtl_digest_updateHMAC_MD5(rtlDigest Digest, const void *pData, sal_uInt32 nDatLen) SAL_THROW_EXTERN_C()
Update a HMAC_MD5 digest with given data.
SAL_DLLPUBLIC rtlDigest rtl_digest_createMD5(void) SAL_THROW_EXTERN_C()
Create a MD5 digest handle.
SAL_DLLPUBLIC void rtl_digest_destroyHMAC_MD5(rtlDigest Digest) SAL_THROW_EXTERN_C()
Destroy a HMAC_MD5 digest handle.