4 * A set of configuration parameters for use by a TLSSocket or a TLSEngine.
\r
5 * Most parameters are optional and will be set to appropriate default values for most use.
\r
7 * Copyright (c) 2007 Henri Torgemane
\r
9 * See LICENSE.txt for full license information.
\r
11 package com.hurlant.crypto.tls {
\r
12 import flash.utils.ByteArray;
\r
13 import com.hurlant.util.der.PEM;
\r
14 import com.hurlant.crypto.rsa.RSAKey;
\r
15 import com.hurlant.crypto.cert.X509CertificateCollection;
\r
16 import com.hurlant.crypto.cert.MozillaRootCertificates;
\r
18 public class TLSConfig {
\r
19 public var entity:uint; // SERVER | CLIENT
\r
21 public var certificate:ByteArray;
\r
22 public var privateKey:RSAKey;
\r
24 public var cipherSuites:Array;
\r
26 public var compressions:Array;
\r
27 public var ignoreCommonNameMismatch:Boolean = false;
\r
28 public var trustAllCertificates:Boolean = false;
\r
29 public var trustSelfSignedCertificates:Boolean = false;
\r
30 public var promptUserForAcceptCert:Boolean = false;
\r
31 public var CAStore:X509CertificateCollection;
\r
32 public var localKeyStore:X509CertificateCollection;
\r
33 public var version:uint;
\r
35 public function TLSConfig( entity:uint, cipherSuites:Array = null, compressions:Array = null,
\r
36 certificate:ByteArray = null, privateKey:RSAKey = null, CAStore:X509CertificateCollection = null, ver:uint = 0x00) {
\r
37 this.entity = entity;
\r
38 this.cipherSuites = cipherSuites;
\r
39 this.compressions = compressions;
\r
40 this.certificate = certificate;
\r
41 this.privateKey = privateKey;
\r
42 this.CAStore = CAStore;
\r
44 // default settings.
\r
45 if (cipherSuites==null) {
\r
46 this.cipherSuites = CipherSuites.getDefaultSuites();
\r
48 if (compressions==null) {
\r
49 this.compressions = [TLSSecurityParameters.COMPRESSION_NULL];
\r
52 if (CAStore==null) {
\r
53 this.CAStore = new MozillaRootCertificates;
\r
58 this.version = TLSSecurityParameters.PROTOCOL_VERSION;
\r
62 public function setPEMCertificate(cert:String, key:String = null):void {
\r
64 key = cert; // for folks who like to concat those two in one file.
\r
66 certificate = PEM.readCertIntoArray(cert);
\r
67 privateKey = PEM.readRSAPrivateKey(key);
\r