]> git.saurik.com Git - apple/security.git/blob - SecureTransport/privateInc/sslBER.h
Security-179.tar.gz
[apple/security.git] / SecureTransport / privateInc / sslBER.h
1 /*
2 * Copyright (c) 2000-2001 Apple Computer, Inc. All Rights Reserved.
3 *
4 * The contents of this file constitute Original Code as defined in and are
5 * subject to the Apple Public Source License Version 1.2 (the 'License').
6 * You may not use this file except in compliance with the License. Please obtain
7 * a copy of the License at http://www.apple.com/publicsource and read it before
8 * using this file.
9 *
10 * This Original Code and all software distributed under the License are
11 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS
12 * OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT
13 * LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 * PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. Please see the License for the
15 * specific language governing rights and limitations under the License.
16 */
17
18
19 /*
20 File: sslBER.h
21
22 Contains: BER routines
23
24 Written by: Doug Mitchell
25
26 Copyright: (c) 1999 by Apple Computer, Inc., all rights reserved.
27
28 */
29
30 #ifndef _SSL_BER_H_
31 #define _SSL_BER_H_
32
33 #ifndef _SSL_PRIV_H_
34 #include "sslPriv.h"
35 #endif
36
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
40
41 /*
42 * Given a PKCS-1 encoded RSA public key, extract the
43 * modulus and public exponent.
44 *
45 * RSAPublicKey ::= SEQUENCE {
46 * modulus INTEGER, -- n
47 * publicExponent INTEGER -- e }
48 */
49
50 OSStatus sslDecodeRsaBlob(
51 const SSLBuffer *blob, /* PKCS-1 encoded */
52 SSLBuffer *modulus, /* data mallocd and RETURNED */
53 SSLBuffer *exponent); /* data mallocd and RETURNED */
54
55 /*
56 * Given a raw modulus and exponent, cook up a
57 * BER-encoded RSA public key blob.
58 */
59
60 OSStatus sslEncodeRsaBlob(
61 const SSLBuffer *modulus,
62 const SSLBuffer *exponent,
63 SSLBuffer *blob); /* data mallocd and RETURNED */
64
65 /*
66 * Given a DER encoded DHParameter, extract the prime and generator.
67 * modulus and public exponent.
68 */
69 OSStatus sslDecodeDhParams(
70 const SSLBuffer *blob, /* PKCS-1 encoded */
71 SSLBuffer *prime, /* data mallocd and RETURNED */
72 SSLBuffer *generator); /* data mallocd and RETURNED */
73
74 /*
75 * Given a prime and generator, cook up a BER-encoded DHParameter blob.
76 */
77 OSStatus sslEncodeDhParams(
78 const SSLBuffer *prime,
79 const SSLBuffer *generator,
80 SSLBuffer *blob); /* data mallocd and RETURNED */
81
82 #ifdef __cplusplus
83 }
84 #endif
85
86 #endif /* _SSL_BER_H_ */