3 l_U @ s d dl mZmZmZ d dlZd dlmZmZ dZdZ dZ dZdZd Z d ZdeB ZdeB Zd ZdZdZG dd deZdd Zdd ZdS ) )absolute_importdivisionprint_functionN)int_from_bytesint_to_bytes c @ sl e Zd Zdd Zdd Zdd Zdd Zd d Zdd Zd d Z dd Z dd Zdd Zdd Z dd ZdS ) DERReaderc C s t || _d S )N) memoryviewdata)selfr r /usr/lib64/python3.6/_der.py__init__$ s zDERReader.__init__c C s | S )Nr )r r r r __enter__' s zDERReader.__enter__c C s |d kr| j d S )N)check_empty)r exc_type exc_valuetbr r r __exit__* s zDERReader.__exit__c C s t | jdkS )Nr )lenr )r r r r is_empty. s zDERReader.is_emptyc C s | j stdd S )Nz Invalid DER input: trailing data)r! ValueError)r r r r r 1 s zDERReader.check_emptyc C s8 t | jdk rtdtj| jd}| jdd | _|S )N z$Invalid DER input: insufficient datar )r r r" six indexbytes)r retr r r read_byte5 s zDERReader.read_bytec C s8 t | j|k rtd| jd | }| j|d | _|S )Nz$Invalid DER input: insufficient data)r r r" )r nr&