Bug:Fix file validation issue
[vnfsdk/refrepo.git] / vnfmarket / src / main / webapp / vnfmarket / node_modules / socket.io-client / lib / vendor / web-socket-js / flash-src / com / hurlant / util / der / Sequence.as
1 /**\r
2  * Sequence\r
3  * \r
4  * An ASN1 type for a Sequence, implemented as an Array\r
5  * Copyright (c) 2007 Henri Torgemane\r
6  * \r
7  * See LICENSE.txt for full license information.\r
8  */\r
9 package com.hurlant.util.der\r
10 {\r
11         import flash.utils.ByteArray;\r
12         \r
13         public dynamic class Sequence extends Array implements IAsn1Type\r
14         {\r
15                 protected var type:uint;\r
16                 protected var len:uint;\r
17                 \r
18                 public function Sequence(type:uint = 0x30, length:uint = 0x00) {\r
19                         this.type = type;\r
20                         this.len = length;\r
21                 }\r
22                 \r
23                 public function getLength():uint\r
24                 {\r
25                         return len;\r
26                 }\r
27                 \r
28                 public function getType():uint\r
29                 {\r
30                         return type;\r
31                 }\r
32 \r
33                 public function toDER():ByteArray {\r
34                         var tmp:ByteArray = new ByteArray;\r
35                         for (var i:int=0;i<length;i++) {\r
36                                 var e:IAsn1Type = this[i];\r
37                                 if (e == null) { // XXX Arguably, I could have a der.Null class instead\r
38                                         tmp.writeByte(0x05);\r
39                                         tmp.writeByte(0x00);\r
40                                 } else {\r
41                                         tmp.writeBytes(e.toDER());\r
42                                 }\r
43                         }\r
44                         return DER.wrapDER(type, tmp);\r
45                 }\r
46                 \r
47                 public function toString():String {\r
48                         var s:String = DER.indent;\r
49                         DER.indent += "    ";\r
50                         var t:String = "";\r
51                         for (var i:int=0;i<length;i++) {\r
52                                 if (this[i]==null) continue;\r
53                                 var found:Boolean = false;\r
54                                 for (var key:String in this) {\r
55                                         if ( (i.toString()!=key) && this[i]==this[key]) {\r
56                                                 t += key+": "+this[i]+"\n";\r
57                                                 found = true;\r
58                                                 break;\r
59                                         }\r
60                                 }\r
61                                 if (!found) t+=this[i]+"\n";\r
62                         }\r
63 //                      var t:String = join("\n");\r
64                         DER.indent= s;\r
65                         return DER.indent+"Sequence["+type+"]["+len+"][\n"+t+"\n"+s+"]";\r
66                 }\r
67                 \r
68                 /////////\r
69                 \r
70                 public function findAttributeValue(oid:String):IAsn1Type {\r
71                         for each (var set:* in this) {\r
72                                 if (set is Set) {\r
73                                         var child:* = set[0];\r
74                                         if (child is Sequence) {\r
75                                                 var tmp:* = child[0];\r
76                                                 if (tmp is ObjectIdentifier) {\r
77                                                         var id:ObjectIdentifier = tmp as ObjectIdentifier;\r
78                                                         if (id.toString()==oid) {\r
79                                                                 return child[1] as IAsn1Type;\r
80                                                         }\r
81                                                 }\r
82                                         }\r
83                                 }\r
84                         }\r
85                         return null;\r
86                 }\r
87                 \r
88                 \r
89         }\r
90 }