Path: blob/master/spec/lib/rex/proto/crypto_asn1_spec.rb
19500 views
# -*- coding:binary -*-1require 'spec_helper'23RSpec.describe Rex::Proto::CryptoAsn1::NtdsCaSecurityExt do4let(:encoded) do5"\x30\x40\xa0\x3e\x06\x0a\x2b\x06\x01\x04\x01\x82\x37\x19\x02\x01\xa0\x30" +6"\x04\x2e\x53\x2d\x31\x2d\x35\x2d\x32\x31\x2d\x33\x34\x30\x32\x35\x38" +7"\x37\x32\x38\x39\x2d\x31\x34\x38\x38\x37\x39\x38\x35\x33\x32\x2d\x33" +8"\x36\x31\x38\x32\x39\x36\x39\x39\x33\x2d\x31\x31\x30\x35"9end1011describe '.parse' do12let(:decoded) { described_class.parse(encoded) }1314it 'decodes OtherName correctly' do15expect(decoded[:OtherName]).to be_a RASN1::Model16end1718it 'decodes type_id correctly' do19type_id = decoded[:OtherName][:type_id]20expect(type_id).to be_a RASN1::Types::ObjectId21expect(type_id.value).to eq '1.3.6.1.4.1.311.25.2.1'22end2324it 'decodes value correctly' do25value = decoded[:OtherName][:value]26expect(value).to be_a RASN1::Types::OctetString27expect(value.value).to eq 'S-1-5-21-3402587289-1488798532-3618296993-1105'28end29end3031describe '#to_der' do32it 'encodes correctly' do33instance = described_class.new(OtherName: {34type_id: '1.3.6.1.4.1.311.25.2.1',35value: 'S-1-5-21-3402587289-1488798532-3618296993-1105'36})37expect(instance.to_der).to eq encoded38end39end40end414243