79 lines
2.9 KiB
Dart
79 lines
2.9 KiB
Dart
import 'dart:typed_data';
|
|
|
|
import 'package:pointycastle/asn1/primitives/asn1_object_identifier.dart';
|
|
import 'package:pointycastle/asn1/unsupported_object_identifier_exception.dart';
|
|
import 'package:test/test.dart';
|
|
|
|
void main() {
|
|
test('Test named constructor fromBytes', () {
|
|
var bytes = Uint8List.fromList([0x06, 0x03, 0x55, 0x04, 0x03]);
|
|
|
|
var valueBytes = Uint8List.fromList([0x55, 0x04, 0x03]);
|
|
|
|
var asn1Object = ASN1ObjectIdentifier.fromBytes(bytes);
|
|
expect(asn1Object.tag, 6);
|
|
expect(asn1Object.isConstructed, false);
|
|
expect(asn1Object.encodedBytes, bytes);
|
|
expect(asn1Object.valueByteLength, 3);
|
|
expect(asn1Object.valueStartPosition, 2);
|
|
expect(asn1Object.valueBytes, valueBytes);
|
|
expect(asn1Object.objectIdentifier!.length, 4);
|
|
expect(asn1Object.objectIdentifier!.elementAt(0), 2);
|
|
expect(asn1Object.objectIdentifier!.elementAt(1), 5);
|
|
expect(asn1Object.objectIdentifier!.elementAt(2), 4);
|
|
expect(asn1Object.objectIdentifier!.elementAt(3), 3);
|
|
expect(asn1Object.objectIdentifierAsString, '2.5.4.3');
|
|
});
|
|
|
|
test('Test encode', () {
|
|
var oiBytes = Uint8List.fromList([2, 5, 4, 3]);
|
|
var asn1Object = ASN1ObjectIdentifier(oiBytes);
|
|
|
|
var bytes = Uint8List.fromList([0x06, 0x03, 0x55, 0x04, 0x03]);
|
|
|
|
expect(asn1Object.encode(), bytes);
|
|
});
|
|
|
|
test('Test named constructor fromName', () {
|
|
var asn1Object = ASN1ObjectIdentifier.fromName('commonName');
|
|
expect(asn1Object.objectIdentifierAsString, '2.5.4.3');
|
|
expect(asn1Object.readableName, 'commonName');
|
|
expect(asn1Object.objectIdentifier, [2, 5, 4, 3]);
|
|
|
|
try {
|
|
ASN1ObjectIdentifier.fromName('foo1234bar1234');
|
|
fail('Exptected UnsupportedObjectIdentifierException');
|
|
} on UnsupportedObjectIdentifierException {
|
|
// Expected
|
|
} on Exception {
|
|
fail('Exptected UnsupportedObjectIdentifierException');
|
|
}
|
|
});
|
|
|
|
test('Test named constructor fromIdentifierString', () {
|
|
var bytes = Uint8List.fromList([0x06, 0x03, 0x55, 0x04, 0x03]);
|
|
|
|
var valueBytes = Uint8List.fromList([0x55, 0x04, 0x03]);
|
|
|
|
var asn1Object = ASN1ObjectIdentifier.fromIdentifierString('2.5.4.3');
|
|
expect(asn1Object.tag, 6);
|
|
expect(asn1Object.encode(), bytes);
|
|
expect(asn1Object.valueByteLength, 3);
|
|
expect(asn1Object.valueStartPosition, 2);
|
|
expect(asn1Object.valueBytes, valueBytes);
|
|
expect(asn1Object.objectIdentifier!.length, 4);
|
|
expect(asn1Object.objectIdentifier!.elementAt(0), 2);
|
|
expect(asn1Object.objectIdentifier!.elementAt(1), 5);
|
|
expect(asn1Object.objectIdentifier!.elementAt(2), 4);
|
|
expect(asn1Object.objectIdentifier!.elementAt(3), 3);
|
|
expect(asn1Object.objectIdentifierAsString, '2.5.4.3');
|
|
});
|
|
|
|
test('Test dump', () {
|
|
var expected = '''OBJECT IDENTIFIER 2.5.4.3 commonName''';
|
|
var bytes = Uint8List.fromList([0x06, 0x03, 0x55, 0x04, 0x03]);
|
|
|
|
var asn1Object = ASN1ObjectIdentifier.fromBytes(bytes);
|
|
expect(asn1Object.dump(), expected);
|
|
});
|
|
}
|