3 l�_U � @ s� d dl mZmZmZ d dlZd dlmZmZ dZdZ dZ dZdZd Z d ZdeB ZdeB Zd ZdZdZG dd� de�Zdd� Zdd� ZdS )� )�absolute_import�division�print_functionN)�int_from_bytes�int_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)� memoryview�data)�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_value�tbr r r �__exit__* s zDERReader.__exit__c C s t | j�dkS )Nr )�lenr )r r r r �is_empty. s zDERReader.is_emptyc C s | j � std��d S )Nz Invalid DER input: trailing data)r! � ValueError)r r r r r 1 s zDERReader.check_emptyc C s8 t | j�dk rtd��tj| 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&