Skip to content

Instantly share code, notes, and snippets.

@rane-hs
Created May 23, 2016 11:27
Show Gist options
  • Save rane-hs/fd18865c55a6e04f7320edfe4fa59c46 to your computer and use it in GitHub Desktop.
Save rane-hs/fd18865c55a6e04f7320edfe4fa59c46 to your computer and use it in GitHub Desktop.
cryptography sample.py
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