Current File : //usr/lib64/python3.6/site-packages/borg/crypto/__pycache__/keymanager.cpython-36.pyc |
3
y��b� � @ s� d dl Z d dlZd dlZd dl mZmZmZ d dlmZ ddlm Z m
Z
mZmZm
Z
mZ ddlmZ ddlmZmZmZmZmZ G d d
� d
e�ZG dd� de�ZG d
d� de�ZG dd� de�Zdd� ZG dd� d�ZdS )� N)� unhexlify�
a2b_base64�
b2a_base64)�sha256� )�Manifest�NoManifestError�Error�yes�
bin_to_hex� dash_open)�
Repository� )�
KeyfileKey�KeyfileNotFoundError�RepoKeyNotFoundError�KeyBlobStorage�identify_keyc @ s e Zd ZdZdS )�UnencryptedRepoz9Keymanagement not available for unencrypted repositories.N)�__name__�
__module__�__qualname__�__doc__� r r �"/usr/lib64/python3.6/keymanager.pyr
s r c @ s e Zd ZdZdS )�UnknownKeyTypezKeytype {0} is unknown.N)r r r r r r r r r s r c @ s e Zd ZdZdS )�RepoIdMismatchzHThis key backup seems to be for a different backup repository, aborting.N)r r r r r r r r r s r c @ s e Zd ZdZdS )�NotABorgKeyFilez-This file is not a borg key backup, aborting.N)r r r r r r r r r s r c C s t � }|j| � |j� d |� S )N)r �updateZ hexdigest)�dataZnum�hr r r �sha256_truncated s
r! c @ s\ e Zd Zdd� Zdd� Zdd� Zdd� Zd d
� Zdd� Zd
d� Z dd� Z
dd� Zdd� ZdS )�
KeyManagerc C sf || _ d | _d | _y| j jtj�}W n tjk
r> t�Y nX t |�}|j
| _| jtjkrbt
� �d S )N)�
repository�keyblob�keyblob_storage�getr ZMANIFEST_IDr
ZObjectNotFoundr r ZSTORAGEr Z
NO_STORAGEr )�selfr# Z
manifest_data�keyr r r �__init__$ s
zKeyManager.__init__c C s� | j tjkrNt| j�}|j� }t|d��}dj|j� dd � �| _ W d Q R X n:| j tj
kr�| jj� j� }|s�| jj
j� }t|�d �|| _ d S )N�r� r )r% r �KEYFILEr r# �find_key�open�join� readlinesr$ �REPOZload_key�decodeZ _locationZcanonical_pathr )r'