Created
May 23, 2016 11:27
-
-
Save rane-hs/fd18865c55a6e04f7320edfe4fa59c46 to your computer and use it in GitHub Desktop.
cryptography sample.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
pkey_string = """ | |
-----BEGIN RSA PRIVATE KEY----- | |
MIIEowIBAAKCAQEArphwgCaBh25XhkszCHSr/ElQY7e2lM8x2HY1CzoZYFdrCnN3 | |
Bhta+q1itSNyacXbCTa1boLeoHNjlBe0RS1wA0iz6jyoh50APigPlY6V6raxdbWf | |
siVLPLeo75l4lEOP6IPSEBsY+LO6bhvQUQawSRA6EHfM9g8nBNZgS80aOnhj/xV+ | |
j2LL+heLjHkWng8tMJrKIV+rv4j9bs8Q3uls2p3mBT5Glqyuzo0FFZQfEl1qGI29 | |
LnfTTrUIEqhb1tG6TO+kMwiHEmDxvC24bbQvk4Msxw9axDIhEvbqLcTFfacozjGb | |
Vn29ebqtUhhxzz7kOY/zJ0zA1ULCgQxjC2tDVwIDAQABAoIBAD2o9mo7rxkOPfje | |
i+pbkfWqSqq80c1iEx94N6l8XkPo+5OYTZupg4ruOuLv3tM+Hen2GUMrEsalmbBO | |
YsrfjiSKw4dg3r/uEYziBwbxcT6QQMHqX7jBdP2/evkLQUtTRPp/u2sWts32Y0vJ | |
pNtIum9DPM5eENOBbG1H7IA4sh+dmXjVE6JcGL9z8HXeCkSNREsglJqQ7VrgCtRI | |
n8nyc4LOslvKyyByNKZzfqu2cAK4bqzgJo8UAzFFDEXN3VtnubbOziexp+d3AqqA | |
W5IAY4+lKIi32H5LBrXMQBMreekP3DZ+WcrsNpFQnDRjx53NaAz6Q26vMpF7m5qU | |
9hHlLgECgYEA2/gvwu0Mc1bEESYLMrbxYJ2ioVizpHW57C59za0/IOpZXpGTOZCZ | |
ZseYXrR9tpob0bEIAhHg1m4ty8dpneMvGdJrs4cybveQvfkdUB4oH1C5Q4TkZlh2 | |
J4+2p5i+Kr0c3UbjwzadOTStvI/yTuK6IeA51aq1QWZCXu5+BM4uSFcCgYEAyzGe | |
a19x89ubPa3SEMfUsIfmJPdgHqaU5wSS1FwDlaqVPLs6r6KzyDxPlvVVPGbzz+R8 | |
900vKHEqm3CSzTOQsjbLx6FofK2qzfQeOLOUoRyLPT5nJ+VUdR42QGYF1FEu/zeB | |
hEUyHfxNZYEOkOTgGZ/u8oyzRLdCV81ClYLZ/QECgYBlsVWTTjfFUsWOEAJ5Ta5F | |
tlqrMPDMBUkQ8WVjosZelzj9yVtA76Kbq4a7scG0m4Zk6O0E1/MT7xfo76XaQl9S | |
Fr+H3ebo+jbGPNbaZTazU4RyvItC7X6iR4Rv8uNnqsofWliNtT/2ZG41kG67HYJj | |
it/x8dueAoKIlMVZv2ASPQKBgQCR+mzQwPpR8oSeFEGlkprn1EpwZlRk0NKLAcsm | |
y5A7txiOUAiCZAZ7JXEch9ablW81/PYWiRoHGP4+O+sLhy8+CYXvPrOdVvsuCWKo | |
48M02BfkgO+FRwmdNn5NV756YXS9IDhpOXke98L22HgJepTRdAgrsw+bn3kHMUzT | |
svU/AQKBgBriA1dGasXRl6M21Pm5Hm+v5CEDbtz5wlTMqlRc4zcjEvP52SPh0//1 | |
OGKLtRuwvr7oHasI6JlxqxUjRIe5kvIK0F+bVhJP+DPWL1lvFouJgch7Yb9vIGGv | |
V0aG4O3FDt8GMPRmtbcycVwPgOKbNNsDIJHvcygFt+jITl8PLCxH | |
-----END RSA PRIVATE KEY-----""" | |
pubkey_string = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCumHCAJoGHbleGSzMIdKv8SVBjt7aUzzHYdjULOhlgV2sKc3cGG1r6rWK1I3JpxdsJNrVugt6gc2OUF7RFLXADSLPqPKiHnQA+KA+VjpXqtrF1tZ+yJUs8t6jvmXiUQ4/og9IQGxj4s7puG9BRBrBJEDoQd8z2DycE1mBLzRo6eGP/FX6PYsv6F4uMeRaeDy0wmsohX6u/iP1uzxDe6WzaneYFPkaWrK7OjQUVlB8SXWoYjb0ud9NOtQgSqFvW0bpM76QzCIcSYPG8LbhttC+TgyzHD1rEMiES9uotxMV9pyjOMZtWfb15uq1SGHHPPuQ5j/MnTMDVQsKBDGMLa0NX rane-hs" | |
def _padding() -> bytes: | |
from cryptography.hazmat.primitives import hashes | |
from cryptography.hazmat.primitives.asymmetric import padding | |
return padding.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA1()), | |
algorithm=hashes.SHA1(), | |
label=None | |
) | |
def decrypt_rsa(encrypted: bytes) -> bytes: | |
from cryptography.hazmat.backends import default_backend | |
from cryptography.hazmat.primitives import serialization, hashes | |
from cryptography.hazmat.primitives.asymmetric import padding | |
private_key = pkey_string | |
pass_phrase = None | |
rsa_private_key = serialization.load_pem_private_key(private_key.encode(), | |
password=pass_phrase, | |
backend=default_backend()) | |
return rsa_private_key.decrypt( | |
encrypted, | |
padding.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA1()), | |
algorithm=hashes.SHA1(), | |
label=None | |
)) | |
def encrypt_rsa(message: str)->str: | |
from cryptography.hazmat.primitives import serialization | |
from cryptography.hazmat.backends import default_backend | |
public_key = serialization.load_ssh_public_key(data=pubkey_string.encode(), | |
backend=default_backend()) | |
return public_key.encrypt(message.encode(), | |
padding=_padding()) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment