Golang Generate Rsa Key Pem Public
The receiver decrypts encrypted message with its private key. These keys are generated only once and used. Generate keys. Once you generated both keys as string with package below, save them into 'certs/public.key' and 'certs/private.key' files respectively then share between sender and receiver machines. Nov 13, 2018 go lang rsa, go lang generate rsa keys, go lang rsa encryption decryption, go lang GenerateMultiPrimeKey, go lang RSA OAEP, go lang RSAPKCS1-V15 Sign Verify, go lang RSAPSS Sign/Verify, go lang Export RSA Key to PEM Format, export, import PEM Key to RSA Format.
Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together. Mount and blade with fire and sword key generator download.
Sign upBranch:master
Golang Pem
2 contributors
Golang Generate Rsa Key Pem Public School
package main |
import ( |
'crypto' |
'crypto/rand' |
'crypto/rsa' |
'crypto/sha256' |
'fmt' |
'os' |
) |
funcmain() { |
// Generate RSA Keys |
miryanPrivateKey, err:=rsa.GenerateKey(rand.Reader, 2048) |
iferr!=nil { |
fmt.Println(err.Error) |
os.Exit(1) |
} |
miryanPublicKey:=&miryanPrivateKey.PublicKey |
raulPrivateKey, err:=rsa.GenerateKey(rand.Reader, 2048) |
iferr!=nil { |
fmt.Println(err.Error) |
os.Exit(1) |
} |
raulPublicKey:=&raulPrivateKey.PublicKey |
fmt.Println('Private Key : ', miryanPrivateKey) |
fmt.Println('Public key ', miryanPublicKey) |
fmt.Println('Private Key : ', raulPrivateKey) |
fmt.Println('Public key ', raulPublicKey) |
//Encrypt Miryan Message |
message:= []byte('the code must be like a piece of music') |
label:= []byte(') |
hash:=sha256.New() |
ciphertext, err:=rsa.EncryptOAEP(hash, rand.Reader, raulPublicKey, message, label) |
iferr!=nil { |
fmt.Println(err) |
os.Exit(1) |
} |
fmt.Printf('OAEP encrypted [%s] to n[%x]n', string(message), ciphertext) |
fmt.Println() |
// Message - Signature |
varopts rsa.PSSOptions |
opts.SaltLength=rsa.PSSSaltLengthAuto// for simple example |
PSSmessage:=message |
newhash:=crypto.SHA256 |
pssh:=newhash.New() |
pssh.Write(PSSmessage) |
hashed:=pssh.Sum(nil) |
signature, err:=rsa.SignPSS(rand.Reader, miryanPrivateKey, newhash, hashed, &opts) |
iferr!=nil { |
fmt.Println(err) |
os.Exit(1) |
} |
fmt.Printf('PSS Signature : %xn', signature) |
// Decrypt Message |
plainText, err:=rsa.DecryptOAEP(hash, rand.Reader, raulPrivateKey, ciphertext, label) |
iferr!=nil { |
fmt.Println(err) |
os.Exit(1) |
} |
fmt.Printf('OAEP decrypted [%x] to n[%s]n', ciphertext, plainText) |
//Verify Signature |
err=rsa.VerifyPSS(miryanPublicKey, newhash, hashed, signature, &opts) |
iferr!=nil { |
fmt.Println('Who are U? Verify Signature failed') |
os.Exit(1) |
} else { |
fmt.Println('Verify Signature successful') |
} |
} |
Golang Rsa Signature
Copy lines Copy permalink