New functions for flutter openpgp compatibility

This commit is contained in:
ycc
2022-11-20 17:52:27 +01:00
parent 7fe7892764
commit 2516b41597
2 changed files with 181 additions and 0 deletions

View File

@ -3,6 +3,7 @@ package meowlib
import (
"encoding/base64"
"fmt"
"io/ioutil"
"log"
"testing"
@ -93,6 +94,20 @@ func TestAsymEncryptDecryptSigned(t *testing.T) {
assert.Equal(t, foo, string(decMess), "The two messages should be the same.")
}
func TestAsymEncryptDecryptSigned2(t *testing.T) {
kp := NewKeyPair()
foo := "!#$%&()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_abcdefghijklmnopqrstuvwxyz{|}~"
encMess, sign, err := AsymEncryptAndSign2(kp.Public, kp.Private, []byte(foo))
if err != nil {
log.Println(err.Error())
}
decMess, err2 := AsymDecryptAndCheck2(kp.Private, kp.Public, encMess, sign)
if err2 != nil {
log.Println(err2.Error())
}
assert.Equal(t, foo, string(decMess), "The two messages should be the same.")
}
func TestFlutterCompat(t *testing.T) {
pub := base64.StdEncoding.EncodeToString([]byte(publicKeyECC))
priv := base64.StdEncoding.EncodeToString([]byte(privateKeyECC))
@ -104,4 +119,63 @@ func TestFlutterCompat(t *testing.T) {
println(base64.StdEncoding.EncodeToString(encMess))
println(base64.StdEncoding.EncodeToString(sign))
}
func TestFlutterDecode(t *testing.T) {
pub, err := ioutil.ReadFile("/home/yves/Documents/code/flutter/meowlib/pub.key")
if err != nil {
fmt.Println("Err")
}
priv, err := ioutil.ReadFile("/home/yves/Documents/code/flutter/meowlib/priv.key")
if err != nil {
fmt.Println("Err")
}
msg, err := ioutil.ReadFile("/home/yves/Documents/code/flutter/meowlib/msg.enc")
if err != nil {
fmt.Println("Err")
}
sign, err := ioutil.ReadFile("/home/yves/Documents/code/flutter/meowlib/msg.sign")
if err != nil {
fmt.Println("Err")
}
decMsg, err := AsymDecrypt(base64.StdEncoding.EncodeToString(priv), msg)
if err != nil {
log.Println(err.Error())
}
println(string(decMsg))
decMsg, err = AsymDecryptAndCheck2(base64.StdEncoding.EncodeToString(priv), base64.StdEncoding.EncodeToString(pub), msg, sign)
if err != nil {
log.Println(err.Error())
}
println(string(decMsg))
println(base64.StdEncoding.EncodeToString(pub))
}
func TestFlutterEncode(t *testing.T) {
pub, err := ioutil.ReadFile("/home/yves/Documents/code/flutter/meowlib/pub.key")
if err != nil {
fmt.Println("Err")
}
priv, err := ioutil.ReadFile("/home/yves/Documents/code/flutter/meowlib/priv.key")
if err != nil {
fmt.Println("Err")
}
encMess, sign2, err := AsymEncryptAndSign2(base64.StdEncoding.EncodeToString(pub), base64.StdEncoding.EncodeToString(priv), []byte("Hello"))
if err != nil {
log.Println(err.Error())
}
err = ioutil.WriteFile("/home/yves/Documents/code/flutter/meowlib/gomsg.enc", encMess, 0644)
if err != nil {
fmt.Println("Err")
}
err = ioutil.WriteFile("/home/yves/Documents/code/flutter/meowlib/gomsg.sign", sign2, 0644)
if err != nil {
fmt.Println("Err")
}
println(base64.StdEncoding.EncodeToString(pub))
}