| 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)+GetInt2(header->keyLen)]) | |
| 66 #define PERSA_Issuer(header) (header->data) | |
| 67 #define PERSA_Serial(header) (&header->data[GetInt2(header->issuerLen)]) | |
| 68 #define PERSA_IV(header) (&header->data[GetInt2(header->issuerLen)\ | |
| 69 +GetInt2(header->serialLen)]) | |
| 70 #define PERSA_Key(header) (&header->data[GetInt2(header->issuerLen)\ | |
| 71 +GetInt2(header->serialLen)+GetInt2(header->keyLen)]) | |
| 72 struct PEHeaderStr { | |
| 73 unsigned char magic [2]; | |
| 74 unsigned char len [2]; | |
| 75 unsigned char type [2]; | |
| 76 unsigned char version[2]; | |
| 77 union { | |
| 78 PEFortezzaHeader fortezza; | |
| 79 PEFortezzaGeneratedHeader g_fortezza; | |
| 80 PEFixedKeyHeader fixed; | |
| 81 PERSAKeyHeader rsa; | |
| 82 } u; | |
| 83 }; | |
| 84 | |
| 85 #define PE_CRYPT_INTRO_LEN 8 | |
| 86 #define PE_INTRO_LEN 4 | |
| 87 #define PE_BASE_HEADER_LEN 8 | |
| 88 | |
| 89 #define PRE_BLOCK_SIZE 8 | |
| 90 | |
| 91 | |
| 92 #define GetInt2(c) ((c[0] << 8) | c[1]) | |
| 93 #define GetInt4(c) (((unsigned long)c[0] << 24)|((unsigned long)c[1] << 16)\ | |
| 94 |((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 PutInt4(c,i) ((c[0]=((i) >> 24) & 0xff),(c[1]=((i) >> 16) & 0xff),\ | |
| 97 (c[2] = ((i) >> 8) & 0xff), (c[3] = (i) & 0xff)) | |
| 98 | |
| 99 #define PRE_MAGIC 0xc0de | |
| 100 #define PRE_VERSION 0x1010 | |
| 101 #define PRE_FORTEZZA_FILE 0x00ff | |
| 102 #define PRE_FORTEZZA_STREAM 0x00f5 | |
| 103 #define PRE_FORTEZZA_GEN_STREAM 0x00f6 | |
| 104 #define PRE_FIXED_FILE 0x000f | |
| 105 #define PRE_RSA_FILE 0x001f | |
| 106 #define PRE_FIXED_STREAM 0x0005 | |
| 107 | |
| 108 PEHeader *SSL_PreencryptedStreamToFile(PRFileDesc *fd, PEHeader *, | |
| 109 int *headerSize); | |
| 110 | |
| 111 PEHeader *SSL_PreencryptedFileToStream(PRFileDesc *fd, PEHeader *, | |
| 112 int *headerSize); | |
| 113 | |
| OLD | NEW |