← Back
Editing: ECC.cpython-311.pyc
� 8�tc�� � � � d dl mZ d dlZd dlZd dlZd dlmZ d dlmZm Z m Z mZmZ d dl mZmZ d dlmZ d dlmZmZmZmZ d dlmZmZmZ d d lmZmZmZmZm Z m!Z! d d l"m#Z# d dl$m%Z% edd � � Z& edd� � Z'i Z(g d�a)d� Z* e*� � [*g d�a+d� Z, e,� � [,g d�a-d� Z. e.� � [. G d� de/� � Z0 G d� de1� � Z2 e2e(d j3 e(d j4 d� � Z5e(d �6 e5�� � Z7e(�8 e9�: tR e7� � � � [5[7b) e2e(d j3 e(d j4 d� � Z;e(d �6 e;�� � Z<e(�8 e9�: tV e<� � � � [;[<b+ e2e(d j3 e(d j4 d� � Z=e(d �6 e=�� � Z>e(�8 e9�: tZ e>� � � � [=[>b- G d� de1� � Z?d � Z@d!� ZAd"� ZBd#� ZCd2d$�ZDd%� ZEd&� ZFd'� ZGd(� ZHd)� ZId2d*�ZJeKd+k r�d dlLZLd,ZMe(d jN �O � � ZPd-ZQ eLjL � � ZR eSeQ� � D ]ZTePeMz ZU� eVd. eLjL � � eRz eQz d/z d0� � eLjL � � ZR eSeQ� � D ]ZTeUeMz ZU� eVd1 eLjL � � eRz eQz d/z d0� � dS dS )3� )�print_functionN)� namedtuple)�bord�tobytes�tostr�bchr� is_string)� bytes_to_long� long_to_bytes)�Integer)�DerObjectId�DerOctetString�DerSequence�DerBitString)�_expand_subject_public_key_info�_create_subject_public_key_info� _extract_subject_public_key_info)�load_pycryptodome_raw_lib�VoidPointer�SmartPointer�c_size_t�c_uint8_ptr�c_ulonglong)�get_random_bytes)�getrandbitszCryptodome.PublicKey._ec_wsav typedef void EcContext; typedef void EcPoint; int ec_ws_new_context(EcContext **pec_ctx, const uint8_t *modulus, const uint8_t *b, const uint8_t *order, size_t len, uint64_t seed); void ec_free_context(EcContext *ec_ctx); int ec_ws_new_point(EcPoint **pecp, const uint8_t *x, const uint8_t *y, size_t len, const EcContext *ec_ctx); void ec_free_point(EcPoint *ecp); int ec_ws_get_xy(uint8_t *x, uint8_t *y, size_t len, const EcPoint *ecp); int ec_ws_double(EcPoint *p); int ec_ws_add(EcPoint *ecpa, EcPoint *ecpb); int ec_ws_scalar(EcPoint *ecp, const uint8_t *k, size_t len, uint64_t seed); int ec_ws_clone(EcPoint **pecp2, const EcPoint *ecp); int ec_ws_copy(EcPoint *ecp1, const EcPoint *ecp2); int ec_ws_cmp(const EcPoint *ecp1, const EcPoint *ecp2); int ec_ws_neg(EcPoint *p); int ec_ws_normalize(EcPoint *ecp); int ec_ws_is_pai(EcPoint *ecp); �_Curvez7p b order Gx Gy G modulus_bits oid context desc openssh)�p256� NIST P-256zP-256� prime256v1� secp256r1�nistp256c �R � d} d}d}d}d}t | d� � }t |d� � }t |d� � }t � � }t � |� � � t |� � t |� � t |� � t t |� � � � t t d� � � � � � } | rt d| z � � �t |� � � t j � � } t t | � � t |� � t |� � t |� � t |� � d d d | dd� � }t � t$ � t( |� � � � d S ) Nl ������? @�� l K`�O�pq^cv 3,�e< 1�U�]>{|R�*��Zl Q%�x+�Oh�bi+}s����� @�� l �B11e %:f=K`�wr�H�7g�HK8�hkl �Q~o��]�l+f�Ug+<�)Z?�8�O�?q!�O� �@ z#Error %d initializing P-256 context� z1.2.840.10045.3.1.7r zecdsa-sha2-nistp256)r r �_ec_lib�ec_ws_new_context� address_ofr r �lenr r �ImportErrorr �get�ec_free_contextr r �_curves�update�dict�fromkeys� p256_names)�p�b�order�Gx�Gy�p256_modulus�p256_b� p256_order�ec_p256_context�result�contextr s �:/usr/lib/python3/dist-packages/Cryptodome/PublicKey/ECC.py� init_p256r>