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