OLD | NEW |
| (Empty) |
1 /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil -*- */ | |
2 | |
3 /* | |
4 * Fortezza support is removed. | |
5 * | |
6 * This Source Code Form is subject to the terms of the Mozilla Public | |
7 * License, v. 2.0. If a copy of the MPL was not distributed with this | |
8 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ | |
9 | |
10 /* Fortezza support is removed. | |
11 * This file remains so that old programs will continue to compile, | |
12 * But this functionality is no longer supported or implemented. | |
13 */ | |
14 | |
15 #include "seccomon.h" | |
16 #include "prio.h" | |
17 | |
18 typedef struct PEHeaderStr PEHeader; | |
19 | |
20 #define PE_MIME_TYPE "application/pre-encrypted" | |
21 | |
22 typedef struct PEFortezzaHeaderStr PEFortezzaHeader; | |
23 typedef struct PEFortezzaGeneratedHeaderStr PEFortezzaGeneratedHeader; | |
24 typedef struct PEFixedKeyHeaderStr PEFixedKeyHeader; | |
25 typedef struct PERSAKeyHeaderStr PERSAKeyHeader; | |
26 | |
27 struct PEFortezzaHeaderStr { | |
28 unsigned char key[12]; | |
29 unsigned char iv[24]; | |
30 unsigned char hash[20]; | |
31 unsigned char serial[8]; | |
32 }; | |
33 | |
34 struct PEFortezzaGeneratedHeaderStr { | |
35 unsigned char key[12]; | |
36 unsigned char iv[24]; | |
37 unsigned char hash[20]; | |
38 unsigned char Ra[128]; | |
39 unsigned char Y[128]; | |
40 }; | |
41 | |
42 struct PEFixedKeyHeaderStr { | |
43 unsigned char pkcs11Mech[4]; | |
44 unsigned char labelLen[2]; | |
45 unsigned char keyIDLen[2]; | |
46 unsigned char ivLen[2]; | |
47 unsigned char keyLen[2]; | |
48 unsigned char data[1]; | |
49 }; | |
50 | |
51 struct PERSAKeyHeaderStr { | |
52 unsigned char pkcs11Mech[4]; | |
53 unsigned char issuerLen[2]; | |
54 unsigned char serialLen[2]; | |
55 unsigned char ivLen[2]; | |
56 unsigned char keyLen[2]; | |
57 unsigned char data[1]; | |
58 }; | |
59 | |
60 #define PEFIXED_Label(header) (header->data) | |
61 #define PEFIXED_KeyID(header) (&header->data[GetInt2(header->labelLen)]) | |
62 #define PEFIXED_IV(header) (&header->data[GetInt2(header->labelLen) + \ | |
63 GetInt2(header->keyIDLen)]) | |
64 #define PEFIXED_Key(header) (&header->data[GetInt2(header->labelLen) + \ | |
65 GetInt2(header->keyIDLen) + \ | |
66 GetInt2(header->keyLen)]) | |
67 #define PERSA_Issuer(header) (header->data) | |
68 #define PERSA_Serial(header) (&header->data[GetInt2(header->issuerLen)]) | |
69 #define PERSA_IV(header) (&header->data[GetInt2(header->issuerLen) + \ | |
70 GetInt2(header->serialLen)]) | |
71 #define PERSA_Key(header) (&header->data[GetInt2(header->issuerLen) + \ | |
72 GetInt2(header->serialLen) + \ | |
73 GetInt2(header->keyLen)]) | |
74 struct PEHeaderStr { | |
75 unsigned char magic[2]; | |
76 unsigned char len[2]; | |
77 unsigned char type[2]; | |
78 unsigned char version[2]; | |
79 union { | |
80 PEFortezzaHeader fortezza; | |
81 PEFortezzaGeneratedHeader g_fortezza; | |
82 PEFixedKeyHeader fixed; | |
83 PERSAKeyHeader rsa; | |
84 } u; | |
85 }; | |
86 | |
87 #define PE_CRYPT_INTRO_LEN 8 | |
88 #define PE_INTRO_LEN 4 | |
89 #define PE_BASE_HEADER_LEN 8 | |
90 | |
91 #define PRE_BLOCK_SIZE 8 | |
92 | |
93 #define GetInt2(c) ((c[0] << 8) | c[1]) | |
94 #define GetInt4(c) (((unsigned long)c[0] << 24) | ((unsigned long)c[1] << 16) |
\ | |
95 ((unsigned long)c[2] << 8) | ((unsigned long)c[3])) | |
96 #define PutInt2(c, i) ((c[1] = (i)&0xff), (c[0] = ((i) >> 8) & 0xff)) | |
97 #define PutInt4(c, i) ((c[0] = ((i) >> 24) & 0xff), (c[1] = ((i) >> 16) & 0xff),
\ | |
98 (c[2] = ((i) >> 8) & 0xff), (c[3] = (i)&0xff)) | |
99 | |
100 #define PRE_MAGIC 0xc0de | |
101 #define PRE_VERSION 0x1010 | |
102 #define PRE_FORTEZZA_FILE 0x00ff | |
103 #define PRE_FORTEZZA_STREAM 0x00f5 | |
104 #define PRE_FORTEZZA_GEN_STREAM 0x00f6 | |
105 #define PRE_FIXED_FILE 0x000f | |
106 #define PRE_RSA_FILE 0x001f | |
107 #define PRE_FIXED_STREAM 0x0005 | |
108 | |
109 PEHeader *SSL_PreencryptedStreamToFile(PRFileDesc *fd, PEHeader *, | |
110 int *headerSize); | |
111 | |
112 PEHeader *SSL_PreencryptedFileToStream(PRFileDesc *fd, PEHeader *, | |
113 int *headerSize); | |
OLD | NEW |