aboutsummaryrefslogtreecommitdiffstats
path: root/lib/asn1kit/types/character_string_types.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/asn1kit/types/character_string_types.rb')
-rw-r--r--lib/asn1kit/types/character_string_types.rb61
1 files changed, 61 insertions, 0 deletions
diff --git a/lib/asn1kit/types/character_string_types.rb b/lib/asn1kit/types/character_string_types.rb
new file mode 100644
index 0000000..93a5682
--- /dev/null
+++ b/lib/asn1kit/types/character_string_types.rb
@@ -0,0 +1,61 @@
+# coding: ASCII-8BIT
+
+module ASN1Kit
+ class CharacterStringType < Type
+ attr_reader :value
+
+ def initialize(string)
+ @value = string
+ end
+
+ def to_der
+ der_header(@value.bytesize) << @value
+ end
+ end
+
+ class UTF8String < CharacterStringType
+ asn1_tag :IMPLICIT, :UNIVERSAL, 12
+ end
+
+ class NumericString < CharacterStringType
+ asn1_tag :IMPLICIT, :UNIVERSAL, 18
+ end
+
+ class PrintableString < CharacterStringType
+ TAG_NUMBER = 19
+ end
+
+ class TeletexString < CharacterStringType
+ TAG_NUMBER = 20
+ end
+ T61String = TeletexString
+
+ class VideotexString < CharacterStringType
+ TAG_NUMBER = 21
+ end
+
+ class IA5String < CharacterStringType
+ TAG_NUMBER = 22
+ end
+
+ class GraphicString < CharacterStringType
+ TAG_NUMBER = 25
+ end
+
+ class VisibleString < CharacterStringType
+ TAG_NUMBER = 26
+ end
+ ISO646String = VisibleString
+
+ class GeneralString < CharacterStringType
+ TAG_NUMBER = 27
+ end
+
+ class UniversalString < CharacterStringType
+ TAG_NUMBER = 28
+ end
+
+ class BMPString < CharacterStringType
+ TAG_NUMBER = 30
+ end
+end