Skip to content

Commit 24887dd

Browse files
committed
Rsa Codes
0 parents  commit 24887dd

File tree

18 files changed

+386
-0
lines changed

18 files changed

+386
-0
lines changed

.DS_Store

6 KB
Binary file not shown.
+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import base64
2+
from distutils import errors
3+
from distutils.log import error
4+
import rsa
5+
6+
publicKey =""
7+
with open('public.pem', 'rb') as p:
8+
publicKey = rsa.PublicKey.load_pkcs1(p.read())
9+
s =b"Datazip has this code to decrypt"
10+
encrypt= rsa.encrypt(s, publicKey)
11+
e = base64.b64encode(encrypt)
12+
print(e.decode())
13+
+81
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
package main
2+
3+
import (
4+
"crypto/rand"
5+
"crypto/rsa"
6+
"crypto/x509"
7+
"encoding/base64"
8+
"encoding/pem"
9+
"fmt"
10+
"os"
11+
)
12+
13+
func keys() {
14+
15+
// generate private key
16+
privatekey, err := rsa.GenerateKey(rand.Reader, 1024)
17+
18+
if err != nil {
19+
fmt.Println(err)
20+
os.Exit(1)
21+
}
22+
23+
var publickey *rsa.PublicKey
24+
publickey = &privatekey.PublicKey
25+
26+
// save PEM file
27+
pemfile, err := os.Create("private.pem")
28+
29+
if err != nil {
30+
fmt.Println(err)
31+
os.Exit(1)
32+
}
33+
34+
var pemkey = &pem.Block{
35+
Type: "RSA PRIVATE KEY",
36+
Bytes: x509.MarshalPKCS1PrivateKey(privatekey)}
37+
38+
err = pem.Encode(pemfile, pemkey)
39+
40+
if err != nil {
41+
fmt.Println(err)
42+
os.Exit(1)
43+
}
44+
pemfile2, err := os.Create("public.pem")
45+
46+
if err != nil {
47+
fmt.Println(err)
48+
os.Exit(1)
49+
}
50+
51+
var pemkey2 = &pem.Block{
52+
Type: "RSA PUBLIC KEY",
53+
Bytes: x509.MarshalPKCS1PublicKey(publickey)}
54+
55+
err = pem.Encode(pemfile2, pemkey2)
56+
57+
if err != nil {
58+
fmt.Println(err)
59+
os.Exit(1)
60+
}
61+
62+
pemfile.Close()
63+
64+
}
65+
66+
func decryptString(ct []byte) string {
67+
privateKey, _ := os.ReadFile("private.pem")
68+
block, _ := pem.Decode([]byte(privateKey))
69+
parsedKey, _ := x509.ParsePKCS1PrivateKey(block.Bytes)
70+
rng := rand.Reader
71+
plaintext, err := rsa.DecryptPKCS1v15(rng, parsedKey, ct)
72+
fmt.Println(err)
73+
fmt.Println("Plaintext:", string(plaintext))
74+
return string(plaintext)
75+
}
76+
func main() {
77+
// keys() //Firstly generate the keys
78+
s := "mJm4OOwEnm+7bD5xJK/ErWYLwR9Z33mmF0j80cIZGxeTtK1w/UzOoI7paPklBJXBkhpWdiUIgA3uk3THZ8qxxkuoGM4Tv4+E+9f7cH+uSb0scGCbuysCjTW0hVNiwECMvRARgnfyxWvCCQ5ANsJANg4jrxnMLR+hvwNtI4hd+Gc="
79+
r, _ := base64.StdEncoding.DecodeString(s)
80+
fmt.Println("Here is encrypted text : ", decryptString(r))
81+
}
+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
-----BEGIN PRIVATE KEY-----
2+
MIICXQIBAAKBgQC91lFK4QT56ywxbJ/ZfII6np0Yy62Xc4z9+mXcnxJAviONrVvi
3+
6fjPWmiusg66Os0ja5ZCLPinliDC7GBUZubPQpLR8kyXrgiV/kozKfjnfDni280a
4+
pbbXA2SEtvQ9FJNZ9e6TdO1K+5P9QUdzVuXJidL+LHU2PWCEQdFZj9DQxQIDAQAB
5+
AoGAdaNt1N0EXGrjg+0wUXHascDA0TDGbefpIyocHU9l3ED3f0BChKdAzB3WaQtm
6+
HPl7TcvJ3VBI9nEN9DzOpP7vX8WJF91N+XhkA/sDngHMerIBohaUkXgbMA4N31fG
7+
W1FIKqB23vMSGlOWsTUw0HL5LLIzGvrEMj6c+MM1/9+6TDECQQD2t8bkhHlp4+kB
8+
z3kESNFz6Zyk4dD6V+P6sH0N0AOOoitEJu6cn9obF5JqSKPNe4eSSLZ3noeVqW18
9+
0ZKHOuZXAkEAxPq0Eyp8k+Lwne25B2PPV2IgFtrl8WL7jG92sZpPAgy9+590xj4T
10+
n8EyXFczkBygC4++gQdQaXDlf/H3Qei4QwJBAPU0W9GctEsAwAETofQXJ0yrvwrE
11+
gH1/Qs9R/0fuGMr29Eds5jP2T8AjYlqNzXcZMfm6mNc0UQ728CFg7N/IM0sCQQCh
12+
BeiK+mJYal4UXC6zcc4fOuHMjSkHyMilpsC6ss//dvcfaNyG6lwUblSC0+4c0qmq
13+
idlLlPURHO8fRmfAA0QNAkBxqAI67FWK1XljE4fda0QUZt5hfsbLLrediOiQFnCv
14+
ZLo7eYWzrq842V8w4GN3Fk+0RLB8X7gAmoutNXpH7wK7
15+
-----END PRIVATE KEY-----
+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
-----BEGIN RSA PUBLIC KEY-----
2+
MIGJAoGBAL3WUUrhBPnrLDFsn9l8gjqenRjLrZdzjP36ZdyfEkC+I42tW+Lp+M9a
3+
aK6yDro6zSNrlkIs+KeWIMLsYFRm5s9CktHyTJeuCJX+SjMp+Od8OeLbzRqlttcD
4+
ZIS29D0Uk1n17pN07Ur7k/1BR3NW5cmJ0v4sdTY9YIRB0VmP0NDFAgMBAAE=
5+
-----END RSA PUBLIC KEY-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import rsa
2+
import os
3+
import base64
4+
from cryptography.hazmat.primitives import hashes
5+
from cryptography.hazmat.primitives.asymmetric.padding import MGF1, OAEP
6+
from cryptography.hazmat.primitives.asymmetric.rsa import RSAPrivateKey
7+
from cryptography.hazmat.primitives.serialization import load_pem_private_key
8+
def generateKeys():
9+
(publicKey, privateKey) = rsa.newkeys(1024)
10+
with open('keys/public.pem', 'wb') as p:
11+
p.write(publicKey.save_pkcs1('PEM'))
12+
with open('keys/private.pem', 'wb') as p:
13+
p.write(privateKey.save_pkcs1('PEM'))
14+
15+
def PrivateKey():
16+
with open('keys/privateKey.pem', 'rb') as p:
17+
privateKey = rsa.PrivateKey.load_pkcs1(p.read())
18+
return privateKey
19+
20+
# generateKeys() # To generate the keys first
21+
22+
encrypted_message = "CAHVgoZdCvNB7+oRiyINUbZJZ3avA5c/5pU2dbR9Yy0xeu81r9ibuZ6GkvV5R4FGpVR8WO5ukC5gl17h0kOrPnkocXorQ3W2R0uNQZoP1J4vWUO/vO1LkykKm+HbBHCiC70kvyXHKZ2B2kgBCp4M7ykaHwuJwf3peWWktxGMaTQ="
23+
encrypted_message_bytes = base64.b64decode(encrypted_message.encode("utf-8"))
24+
PRIVATE_KEY = open('keys/private.pem', 'r').read()
25+
private_key_bytes = PRIVATE_KEY.encode("utf-8")
26+
private_key: RSAPrivateKey = load_pem_private_key(private_key_bytes, None)
27+
padding = OAEP(mgf=MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None)
28+
decrypted_message = private_key.decrypt(encrypted_message_bytes, padding)
29+
print("Decrypted Message : ",decrypted_message.decode('utf-8'))
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package main
2+
3+
import (
4+
"crypto/rand"
5+
"crypto/rsa"
6+
"crypto/sha256"
7+
"crypto/x509"
8+
"encoding/base64"
9+
"encoding/pem"
10+
"fmt"
11+
"os"
12+
)
13+
14+
// encrypt in golang and created public and private key
15+
func encryptString(s string) string {
16+
publicKey, _ := os.ReadFile("keys/public.pem")
17+
block, _ := pem.Decode([]byte(publicKey))
18+
fmt.Println(block)
19+
if block.Type != "RSA PUBLIC KEY" {
20+
fmt.Println("error decoding public key from pem")
21+
}
22+
parsedKey, err := x509.ParsePKCS1PublicKey(block.Bytes)
23+
if err != nil {
24+
fmt.Println("error parsing key")
25+
}
26+
rng := rand.Reader
27+
ciphertext, err := rsa.EncryptOAEP(sha256.New(), rng, parsedKey, []byte(s), nil)
28+
if err != nil {
29+
fmt.Println("err")
30+
}
31+
return base64.StdEncoding.EncodeToString(ciphertext)
32+
}
33+
func main() {
34+
s := "This is Datazip Call"
35+
fmt.Println("Here is encrypted text : ", encryptString(s))
36+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
-----BEGIN RSA PRIVATE KEY-----
2+
MIICXwIBAAKBgQCI0qUb2QQX6csKnGJOtSurq7rWWaC6uQGMhupivpyMzddFJpiI
3+
E58ZLqElDtxISFdDLHKDzq6A3EM6R90sCDVVUXpnU0pHMJjdfF39TMbTKGwda4jT
4+
YpTz/ME4AVRKFznpFPS5hF4PZqNRTfPAn+7hFGSPCWZlNDART9S0ack6RQIDAQAB
5+
AoGANwLqm62/tZWsq1GBPUAelOFxN6nFtA2aj9PW/WjCLOK+QPFptpydBVT4OZwl
6+
+XIMk9eVG2XIR8tHxHEMNUMSiNMu+MUEe5KHJMSxgJnxbmsYQTVrF0HcnGmoHEM+
7+
l65F3ICsRX7BEvlnfY+4BKfaBQ4aAHJUZtd+T/AXgoMfOUECRQC1M12xIZpPMITj
8+
iRWkDNtNdvqA7ZC4O9THeVLCDLD6er9yAsHFZ+2lu84H4RJrDkXJW44L3CtnCwUR
9+
UiWeO8Umva0B/QI9AMFNlzQIEEwX5GPqlMudUy5RTvrSw20K1lEecx7x2awF8FTx
10+
cZsrPE19Fn7nIjKuMtW+yrtuI5deUD6H6QJEb9BPm3NJ3l3pUuMPuJi6ZxXpRM/U
11+
AuvgxGqoV9gvCZHfO0JaQi98pU27uH75t5gqFjPp9oWZPs+9A9A2KGtnoB1heh0C
12+
PG1VQYyAcxdW/Cs3Z2mzVnUAMDfWNgra8lV3b421JXUS9thUp/kn/zek5LBqcwFP
13+
XhlfjLNunFrlUWXM4QJEIWvSXd3A52KfABb6FULV5bASXh158NnN/w5oUuu6ZDbd
14+
92KpwWdOT6au1jABCqgC/735X/Z/QbTSmjEGaIyGVtWuvPs=
15+
-----END RSA PRIVATE KEY-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
-----BEGIN RSA PUBLIC KEY-----
2+
MIGJAoGBAIjSpRvZBBfpywqcYk61K6urutZZoLq5AYyG6mK+nIzN10UmmIgTnxku
3+
oSUO3EhIV0MscoPOroDcQzpH3SwINVVRemdTSkcwmN18Xf1MxtMobB1riNNilPP8
4+
wTgBVEoXOekU9LmEXg9mo1FN88Cf7uEUZI8JZmU0MBFP1LRpyTpFAgMBAAE=
5+
-----END RSA PUBLIC KEY-----

Extra Testing/.DS_Store

6 KB
Binary file not shown.

Extra Testing/decrypt.py

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import rsa
2+
3+
def generateKeys():
4+
(publicKey, privateKey) = rsa.newkeys(1024)
5+
with open('keys/publicKey.pem', 'wb') as p:
6+
p.write(publicKey.save_pkcs1('PEM'))
7+
with open('keys/privateKey.pem', 'wb') as p:
8+
p.write(privateKey.save_pkcs1('PEM'))
9+
10+
def loadKeys():
11+
with open('keys/publicKey.pem', 'rb') as p:
12+
publicKey = rsa.PublicKey.load_pkcs1(p.read())
13+
with open('keys/privateKey.pem', 'rb') as p:
14+
privateKey = rsa.PrivateKey.load_pkcs1(p.read())
15+
return privateKey, publicKey
16+
17+
def encrypt(message, key):
18+
return rsa.encrypt(message.encode('ascii'), key)
19+
20+
generateKeys()
21+
publicKey, privateKey = loadKeys()
22+
23+
message = input("hi from my side this is Ankit")
24+
ciphertext = encrypt(message, publicKey)
25+
print(ciphertext.decode('utf-8'))

Extra Testing/encrypt.py

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import os
2+
import base64
3+
from cryptography.hazmat.primitives import hashes
4+
from cryptography.hazmat.primitives.asymmetric.padding import MGF1, OAEP
5+
from cryptography.hazmat.primitives.asymmetric.rsa import RSAPrivateKey
6+
from cryptography.hazmat.primitives.serialization import load_pem_private_key
7+
from M2Crypto import BIO, RSA
8+
encrypted_message = "M+bpzevgVRlPGn2sFZ5Ry9pWZNKaG2TZEMTB/Xu1tqhsOllf6BSZ6VpOKE9N0Y3k7qnLKriB5TJK7Z3yknXUsiS8ICfsBahcR5hORVSt4XJPcq+XkTW4OF9zg2HIiwJfcBHy7HIpLo+BaY/k7xuUknEYUZtZYmqmx0acM10RyTQ="
9+
encrypted_message_bytes = base64.b64decode(encrypted_message.encode("utf-8"))
10+
PRIVATE_KEY = open('private.pem', 'r').read()
11+
private_key_bytes = PRIVATE_KEY.encode("utf-8")
12+
private_key: RSAPrivateKey = load_pem_private_key(private_key_bytes, None)
13+
padding = OAEP(mgf=MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None)
14+
decrypted_message = private_key.decrypt(encrypted_message_bytes, padding)
15+
print(decrypted_message)

Extra Testing/key.go

+86
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
package main
2+
3+
import (
4+
"crypto/rand"
5+
"crypto/rsa"
6+
"crypto/x509"
7+
"encoding/gob"
8+
"encoding/pem"
9+
"fmt"
10+
"os"
11+
)
12+
13+
func main() {
14+
15+
// generate private key
16+
privatekey, err := rsa.GenerateKey(rand.Reader, 1024)
17+
18+
if err != nil {
19+
fmt.Println(err)
20+
os.Exit(1)
21+
}
22+
23+
var publickey *rsa.PublicKey
24+
publickey = &privatekey.PublicKey
25+
26+
// save private and public key separately
27+
privatekeyfile, err := os.Create("private.key")
28+
if err != nil {
29+
fmt.Println(err)
30+
os.Exit(1)
31+
}
32+
privatekeyencoder := gob.NewEncoder(privatekeyfile)
33+
privatekeyencoder.Encode(privatekey)
34+
privatekeyfile.Close()
35+
36+
publickeyfile, err := os.Create("public.key")
37+
if err != nil {
38+
fmt.Println(err)
39+
os.Exit(1)
40+
}
41+
42+
publickeyencoder := gob.NewEncoder(publickeyfile)
43+
publickeyencoder.Encode(publickey)
44+
publickeyfile.Close()
45+
46+
// save PEM file
47+
pemfile, err := os.Create("private.pem")
48+
49+
if err != nil {
50+
fmt.Println(err)
51+
os.Exit(1)
52+
}
53+
54+
// http://golang.org/pkg/encoding/pem/#Block
55+
var pemkey = &pem.Block{
56+
Type: "RSA PRIVATE KEY",
57+
Bytes: x509.MarshalPKCS1PrivateKey(privatekey)}
58+
59+
err = pem.Encode(pemfile, pemkey)
60+
61+
if err != nil {
62+
fmt.Println(err)
63+
os.Exit(1)
64+
}
65+
pemfile2, err := os.Create("publickey.pem")
66+
67+
if err != nil {
68+
fmt.Println(err)
69+
os.Exit(1)
70+
}
71+
fmt.Println("Here is key :", publickey)
72+
// http://golang.org/pkg/encoding/pem/#Block
73+
var pemkey2 = &pem.Block{
74+
Type: "RSA PUBLIC KEY",
75+
Bytes: x509.MarshalPKCS1PublicKey(publickey)}
76+
77+
err = pem.Encode(pemfile2, pemkey2)
78+
79+
if err != nil {
80+
fmt.Println(err)
81+
os.Exit(1)
82+
}
83+
84+
pemfile.Close()
85+
86+
}

Extra Testing/main.go

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package main
2+
3+
import (
4+
"crypto/rand"
5+
"crypto/rsa"
6+
"crypto/sha256"
7+
"crypto/x509"
8+
"encoding/base64"
9+
"encoding/pem"
10+
"fmt"
11+
"os"
12+
)
13+
14+
// encrypt in golang and created public and private key
15+
func encryptString(s string) string {
16+
publicKey, _ := os.ReadFile("publickey.pem")
17+
block, _ := pem.Decode([]byte(publicKey))
18+
fmt.Println(block)
19+
if block.Type != "RSA PUBLIC KEY" {
20+
fmt.Println("error decoding public key from pem")
21+
}
22+
parsedKey, err := x509.ParsePKCS1PublicKey(block.Bytes)
23+
if err != nil {
24+
fmt.Println("error parsing key")
25+
}
26+
// var ok bool
27+
// var pubkey *rsa.PublicKey
28+
// if pubkey, ok = parsedKey.(*rsa.PublicKey); !ok {
29+
// fmt.Println("unable to parse public key")
30+
// }
31+
rng := rand.Reader
32+
ciphertext, err := rsa.EncryptOAEP(sha256.New(), rng, parsedKey, []byte(s), nil)
33+
if err != nil {
34+
fmt.Println("err")
35+
}
36+
return base64.StdEncoding.EncodeToString(ciphertext)
37+
}
38+
func main() {
39+
s := "hello from the ankit side"
40+
fmt.Println("Here is encrypted text : ", encryptString(s))
41+
}

Extra Testing/private.key

916 Bytes
Binary file not shown.

Extra Testing/private.pem

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
-----BEGIN RSA PRIVATE KEY-----
2+
MIICXAIBAAKBgQCUDm5pfUkFW0p8D7aUusJHJ77HLAKku9YCqth/J3ulXZH2ZC6U
3+
AZh8vJuU7WIrTcidRv8WUKbT7UnXtJ/Ztw04o5UFmPnSypnmPW3AMTQsPFyDTwvO
4+
C4ScfKMAI7gxiG0vQh/Ie/gZokgZIlcSnKyoOLOKGr/5SsOK+RsWJ9sVuwIDAQAB
5+
AoGBAIul3QDE+jYCOIwx6f349bxVwb1tRoUI4sAbUx8EJ7z/N+iV79UMeD7XS0w6
6+
Z4j+0gV+7KWopuJoA2lg5hFddiqR3OO9Cn6Y2b6gzjsMPufew+6R6lYGLoVaQ1hm
7+
n4vFIoEaH8FZOT3Pq2bmS2258QB6bwQdOrxwRsNxfgHCP35xAkEAwBaeKUmLkMho
8+
mMZxgjjvriWtfKjbqIMzZdlNehdGmDOarlvJCOeEwbPi5HmRicCn1OmmUXWZ6UHS
9+
2fDfa3/2owJBAMVRVLBBiwkY/FrhIUq7IJo92n+CaMIIFY7eZNEpmkgw6Ea3NRBh
10+
nKFcGQvOkfxedrHwUdJuYiKGDFLLMmYPjgkCP0FHbniZhdSuRt2kku6uasXECDFV
11+
MVETRWRXdP0I6/TNlMOsbaWZCITLnVAIAG3QCzlQLjWAwc2DkSR/t23RDwJBAKEo
12+
f0oCDmPc02gKjl1yHvu7XzVbtuIbJjhtLdyj5Q3nXB89zYpWn04vYYmCKzv7j2hf
13+
xwRfAan+4BvTOJOhSrkCQBNF/QGMdQaisDyltUvIOa3yyhveAV31lSDlbEfrUUdu
14+
LnEU/YqdB0TM3MM0e+c8Q1aDQ67gZ/JCj5KcaT+Pqb4=
15+
-----END RSA PRIVATE KEY-----

Extra Testing/public.key

190 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)