aboutsummaryrefslogtreecommitdiffstats
path: root/signaling-server/node_modules/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/cert/X509CertificateCollection.as
blob: db11e409379665a3b543a993878d13066cbc34e3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
/**
 * X509CertificateCollection
 * 
 * A class to store and index X509 Certificates by Subject.
 * Copyright (c) 2007 Henri Torgemane
 * 
 * See LICENSE.txt for full license information.
 */
package com.hurlant.crypto.cert {
	
	public class X509CertificateCollection {
		
		private var _map:Object;
		
		public function X509CertificateCollection() {
			_map = {};
		}
		
		/**
		 * Mostly meant for built-in CA loading.
		 * This entry-point allows to index CAs without parsing them.
		 * 
		 * @param name		A friendly name. not currently used
		 * @param subject	base64 DER encoded Subject principal for the Cert
		 * @param pem		PEM encoded certificate data
		 * 
		 */
		public function addPEMCertificate(name:String, subject:String, pem:String):void {
			_map[subject] = new X509Certificate(pem);
		}
		
		/**
		 * Adds a X509 certificate to the collection.
		 * This call will force the certificate to be parsed.
		 * 
		 * @param cert		A X509 certificate
		 * 
		 */
		public function addCertificate(cert:X509Certificate):void {
			var subject:String = cert.getSubjectPrincipal();
			_map[subject] = cert;
		}
		
		/**
		 * Returns a X509 Certificate present in the collection, given
		 * a base64 DER encoded X500 Subject principal
		 * 
		 * @param subject	A Base64 DER-encoded Subject principal
		 * @return 			A matching certificate, or null.
		 * 
		 */
		public function getCertificate(subject:String):X509Certificate {
			return _map[subject];
		}
		
	}
}