File manager - Edit - /opt/saltstack/salt/lib/python3.10/site-packages/Cryptodome/Signature/__pycache__/DSS.cpython-310.pyc
Back
o ;j�; � @ s� d dl mZ d dlmZ d dlmZ d dlmZ d dlm Z d dl mZ ddgZG d d� de �ZG d d� de�ZG dd � d e�ZG dd� de�Zddd�ZdS )� )�DerSequence)� long_to_bytes)�Integer)�HMAC)�EccKey)�DsaKey�DssSigScheme�newc @ s@ e Zd ZdZdd� Zdd� Zdd� Zdd � Zd d� Zdd � Z dS )r zoA (EC)DSA signature object. Do not instantiate directly. Use :func:`Cryptodome.Signature.DSS.new`. c C s6 || _ || _|| _| j�� | _| jd d d | _dS )z�Create a new Digital Signature Standard (DSS) object. Do not instantiate this object directly, use `Cryptodome.Signature.DSS.new` instead. � � N)�_key� _encoding�_order�size_in_bits�_order_bits�_order_bytes)�self�key�encoding�order� r �L/opt/saltstack/salt/lib/python3.10/site-packages/Cryptodome/Signature/DSS.py�__init__3 s zDssSigScheme.__init__c C s | j �� S )zRReturn ``True`` if this signature object can be used for signing messages.)r �has_private�r r r r �can_signA s zDssSigScheme.can_signc C � t d���NzTo be provided by subclasses��NotImplementedError�r �msg_hashr r r �_compute_nonceG � zDssSigScheme._compute_noncec C r r r r r r r �_valid_hashJ r# zDssSigScheme._valid_hashc s� � j �� s td��� �|�std��� �|�}t�|�� d� j � �}� j � ||�}� jdkr=d�� fdd�|D ��}|S t |��� }|S )a Compute the DSA/ECDSA signature of a message. Args: msg_hash (hash object): The hash that was carried out over the message. The object belongs to the :mod:`Cryptodome.Hash` package. Under mode ``'fips-186-3'``, the hash must be a FIPS approved secure hash (SHA-2 or SHA-3). :return: The signature as ``bytes`` :raise ValueError: if the hash algorithm is incompatible to the (EC)DSA key :raise TypeError: if the (EC)DSA key has no private half zPrivate key is needed to sign�Hash is not sufficiently strongN�binary� c s g | ]}t |� j��qS r )r r ��.0�xr r r � <listcomp>k s �z%DssSigScheme.sign.<locals>.<listcomp>)r r � TypeErrorr$ � ValueErrorr"