| 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 |