security/nss/lib/ssl/preenc.h

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/security/nss/lib/ssl/preenc.h	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,113 @@
     1.4 +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil -*- */
     1.5 +
     1.6 +/*
     1.7 + * Fortezza support is removed.
     1.8 + *
     1.9 + * This Source Code Form is subject to the terms of the Mozilla Public
    1.10 + * License, v. 2.0. If a copy of the MPL was not distributed with this
    1.11 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
    1.12 +
    1.13 +/* Fortezza support is removed.
    1.14 + * This file remains so that old programs will continue to compile,
    1.15 + * But this functionality is no longer supported or implemented.
    1.16 + */
    1.17 +
    1.18 +#include "seccomon.h"
    1.19 +#include "prio.h"
    1.20 +
    1.21 +typedef struct PEHeaderStr PEHeader;
    1.22 +
    1.23 +#define PE_MIME_TYPE "application/pre-encrypted"
    1.24 +
    1.25 +typedef struct PEFortezzaHeaderStr PEFortezzaHeader;
    1.26 +typedef struct PEFortezzaGeneratedHeaderStr PEFortezzaGeneratedHeader;
    1.27 +typedef struct PEFixedKeyHeaderStr PEFixedKeyHeader;
    1.28 +typedef struct PERSAKeyHeaderStr PERSAKeyHeader;
    1.29 +
    1.30 +struct PEFortezzaHeaderStr {
    1.31 +    unsigned char key[12];      
    1.32 +    unsigned char iv[24];       
    1.33 +    unsigned char hash[20];     
    1.34 +    unsigned char serial[8];    
    1.35 +};
    1.36 +
    1.37 +struct PEFortezzaGeneratedHeaderStr {
    1.38 +    unsigned char key[12];      
    1.39 +    unsigned char iv[24];       
    1.40 +    unsigned char hash[20];     
    1.41 +    unsigned char Ra[128];      
    1.42 +    unsigned char Y[128];       
    1.43 +};
    1.44 +
    1.45 +struct PEFixedKeyHeaderStr {
    1.46 +    unsigned char pkcs11Mech[4];  
    1.47 +    unsigned char labelLen[2];	  
    1.48 +    unsigned char keyIDLen[2];	  
    1.49 +    unsigned char ivLen[2];	  
    1.50 +    unsigned char keyLen[2];	  
    1.51 +    unsigned char data[1];	  
    1.52 +};
    1.53 +
    1.54 +struct PERSAKeyHeaderStr {
    1.55 +    unsigned char pkcs11Mech[4];  
    1.56 +    unsigned char issuerLen[2];	  
    1.57 +    unsigned char serialLen[2];	  
    1.58 +    unsigned char ivLen[2];	  
    1.59 +    unsigned char keyLen[2];	  
    1.60 +    unsigned char data[1];	  
    1.61 +};
    1.62 +
    1.63 +#define PEFIXED_Label(header) (header->data)
    1.64 +#define PEFIXED_KeyID(header) (&header->data[GetInt2(header->labelLen)])
    1.65 +#define PEFIXED_IV(header) (&header->data[GetInt2(header->labelLen)\
    1.66 +						+GetInt2(header->keyIDLen)])
    1.67 +#define PEFIXED_Key(header) (&header->data[GetInt2(header->labelLen)\
    1.68 +			+GetInt2(header->keyIDLen)+GetInt2(header->keyLen)])
    1.69 +#define PERSA_Issuer(header) (header->data)
    1.70 +#define PERSA_Serial(header) (&header->data[GetInt2(header->issuerLen)])
    1.71 +#define PERSA_IV(header) (&header->data[GetInt2(header->issuerLen)\
    1.72 +						+GetInt2(header->serialLen)])
    1.73 +#define PERSA_Key(header) (&header->data[GetInt2(header->issuerLen)\
    1.74 +			+GetInt2(header->serialLen)+GetInt2(header->keyLen)])
    1.75 +struct PEHeaderStr {
    1.76 +    unsigned char magic  [2];		
    1.77 +    unsigned char len    [2];		
    1.78 +    unsigned char type   [2];		
    1.79 +    unsigned char version[2];		
    1.80 +    union {
    1.81 +        PEFortezzaHeader          fortezza;
    1.82 +        PEFortezzaGeneratedHeader g_fortezza;
    1.83 +	PEFixedKeyHeader          fixed;
    1.84 +	PERSAKeyHeader            rsa;
    1.85 +    } u;
    1.86 +};
    1.87 +
    1.88 +#define PE_CRYPT_INTRO_LEN 8
    1.89 +#define PE_INTRO_LEN 4
    1.90 +#define PE_BASE_HEADER_LEN  8
    1.91 +
    1.92 +#define PRE_BLOCK_SIZE 8         
    1.93 +
    1.94 +
    1.95 +#define GetInt2(c) ((c[0] << 8) | c[1])
    1.96 +#define GetInt4(c) (((unsigned long)c[0] << 24)|((unsigned long)c[1] << 16)\
    1.97 +			|((unsigned long)c[2] << 8)| ((unsigned long)c[3]))
    1.98 +#define PutInt2(c,i) ((c[1] = (i) & 0xff), (c[0] = ((i) >> 8) & 0xff))
    1.99 +#define PutInt4(c,i) ((c[0]=((i) >> 24) & 0xff),(c[1]=((i) >> 16) & 0xff),\
   1.100 +			(c[2] = ((i) >> 8) & 0xff), (c[3] = (i) & 0xff))
   1.101 +
   1.102 +#define PRE_MAGIC		0xc0de
   1.103 +#define PRE_VERSION		0x1010
   1.104 +#define PRE_FORTEZZA_FILE	0x00ff  
   1.105 +#define PRE_FORTEZZA_STREAM	0x00f5  
   1.106 +#define PRE_FORTEZZA_GEN_STREAM	0x00f6  
   1.107 +#define PRE_FIXED_FILE		0x000f  
   1.108 +#define PRE_RSA_FILE		0x001f  
   1.109 +#define PRE_FIXED_STREAM	0x0005  
   1.110 +
   1.111 +PEHeader *SSL_PreencryptedStreamToFile(PRFileDesc *fd, PEHeader *,
   1.112 +				       int *headerSize);
   1.113 +
   1.114 +PEHeader *SSL_PreencryptedFileToStream(PRFileDesc *fd, PEHeader *,
   1.115 +				       int *headerSize);
   1.116 +

mercurial