]> git.saurik.com Git - apple/security.git/blob - OSX/libsecurity_cryptkit/lib/enc64.h
Security-57740.51.3.tar.gz
[apple/security.git] / OSX / libsecurity_cryptkit / lib / enc64.h
1 /* Copyright (c) 1998,2011,2014 Apple Inc. All Rights Reserved.
2 *
3 * NOTICE: USE OF THE MATERIALS ACCOMPANYING THIS NOTICE IS SUBJECT
4 * TO THE TERMS OF THE SIGNED "FAST ELLIPTIC ENCRYPTION (FEE) REFERENCE
5 * SOURCE CODE EVALUATION AGREEMENT" BETWEEN APPLE, INC. AND THE
6 * ORIGINAL LICENSEE THAT OBTAINED THESE MATERIALS FROM APPLE,
7 * INC. ANY USE OF THESE MATERIALS NOT PERMITTED BY SUCH AGREEMENT WILL
8 * EXPOSE YOU TO LIABILITY.
9 ***************************************************************************
10 *
11 * enc64.h - encode/decode in 64-char IA5 format, per RFC 1421
12 *
13 * Revision History
14 * ----------------
15 * 9 Oct 96 at NeXT
16 * Created.
17 */
18
19 #ifndef _CK_ENC64_H_
20 #define _CK_ENC64_H_
21
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25
26 /*
27 * Given input buffer inbuf, length inlen, decode from 64-char IA5 format to
28 * binary. Result is fmalloced and returned; its length is returned in *outlen.
29 * NULL return indicates corrupted input.
30 */
31 unsigned char *enc64(const unsigned char *inbuf,
32 unsigned inlen,
33 unsigned *outlen); // RETURNED
34
35 /*
36 * Enc64, with embedded newlines every lineLen in result. A newline is
37 * the Microsoft-style "\r\n".
38 */
39 unsigned char *enc64WithLines(const unsigned char *inbuf,
40 unsigned inlen,
41 unsigned linelen,
42 unsigned *outlen); // RETURNED
43
44 /*
45 * Given input buffer inbuf, length inlen, decode from 64-char IA5 format to
46 * binary. Result is fmalloced and returned; its length is returned in *outlen.
47 * NULL return indicates corrupted input. All whitespace in inbuf is
48 * ignored.
49 */
50 unsigned char *dec64(const unsigned char *inbuf,
51 unsigned inlen,
52 unsigned *outlen);
53
54 /*
55 * Determine if specified input data is valid enc64 format. Returns 1
56 * if valid, 0 if not.
57 */
58 int isValidEnc64(const unsigned char *inbuf,
59 unsigned inbufLen);
60
61 #ifdef __cplusplus
62 }
63 #endif
64
65 #endif /*_CK_ENC64_H_*/