Work In Python
================================================== ================
Entry
————
In In thist article, we with create the basic Ethereum library in Python, white consciousness of generating a pale of yan yys (elliptical curve), competing privates and verifications, symptoms and verification of the public signs.
Library code
————
We will use the “Cryptography” library, which shy and well – were intained library for cryptographs in Python. We have aluse the “HMAC” library to generate Mac (msusage authentication codes) for blockchain etheem.
*Inestation
———–
To install the required libraries, run the followingcoms:
Bash
Install cryptography
Library code:
`Python
Import OS
wiir cyptography.hazmat.hazmat.hazmat.hazmat.hazmat
wiir creepy.hazmat.
wittgraph
Base64 import
Reliberations are:
Def __init __ (self, private_yey = none):
If is a private_yey:
self. private_yy = private_yey
otherwise:
Generate a new EC key for each library instance
self.private_yy = ed.Generate_prite_ty (ec.seck256k1 (), default_back () default_back ()
Def Generate_CEYPAIR (self, private_eye = none):
If is prize_key:
private_yy = self.private_yey
Return ec.Gerate_prate_ykey (private_key, default_back ()
Def Get_private_ey (Self):
Return Self_KEY
of the gephabet_eye (self):
Returned Self.
Def Sign_Message (Self, Message, Public_KEY):
Cingnature = public_key.sign (
message,
epihpams (),
Anymmetrical signning algorithm.sha256 ()
)
Return base64.b32encode (signature)
def verify_signature (selves, message, celebration, private_ye):
tory:
public_key = self.private_y.prc_y.prc_y ()
public_key.verify (
syen,
message,
asymmetrical verifications.dhmare (),
)
Reseive
accept:
returbated
Sample use:
Library = ethereumbliction ()
Generate a new EC key for each library instance
complaining = library.Genate_keckypair ()
private_y = library.get_pry_ykey (). public_bytes (
coding = Seriabizal.M,
Format = Serralization
encryption_algorithm = Serealization.nocryption ()
)
Sign a monthly month
Message = b "Hello, world!"
signal = library.ssage (ssage, keypir.pubir.pupir.pubir.pupirs ()
print (lipliarary.get_private_key () Public_eye (
coding = Seriabizal.M,
Format = Serealization. Public..Subject PublicSINFO
)
Check the signature use a private key
private_eye.verify (
B " \ x00 \ x01 \ x02 \ x03",
signature
B "Hello, world!",
Message
Keypair.prite_y
)
Note this was simplified examin and short not be useed in product futher futher of tests and validations. In addition, remember tit will be a library instance instance instance with conjunction consumed memorial memorials.
oblige months
----------
In the case of approval messasages, follow the standard of professional guidelines:
- Use an imperative mood (e.g. "Fet: "Feat: Add Etheretum Library")
- Kep a short line (<72 cha racers)
- Use the curent time (e.g. "Add yd EC keyboard generation")
Samp approval message:
The basic Eetheum Library in Python has been beened
`