Skip to content
No description or website provided.
Branch: master
Clone or download
Latest commit 5d5b81c Oct 29, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
LICENSE
README.md Update README.md Oct 29, 2018
crypto.go go fmt Jun 16, 2018
easypgp.go
easypgp.pb.go
easypgp.proto
easypgp_test.go Added symmetric encryption Jun 16, 2018
keys.go

README.md

EasyPGP

PGP library for iOS and Android available through gomobile

To use EasyPGP you would need to install gomobile tools, following tutorial. You also need to patch gomobile to support Uint64:

diff --git a/bind/gen.go b/bind/gen.go
index 546c5cf4..0428230f 100644
--- a/bind/gen.go
+++ b/bind/gen.go
@@ -232,7 +232,9 @@ func (g *Generator) cgoType(t types.Type) string {
 			return "int64_t"
 		case types.Uint8: // types.Byte
 			return "uint8_t"
-		// TODO(crawshaw): case types.Uint, types.Uint16, types.Uint32, types.Uint64:
+		// TODO(crawshaw): case types.Uint, types.Uint16, types.Uint32:
+		case types.Uint64:
+			return "uint64_t"
 		case types.Float32:
 			return "float"
 		case types.Float64, types.UntypedFloat:

After that you can build EasyPGP.framework:

go get github.com/lastochkanetwork/easypgp

# For iOS
gomobile bind -target=ios -o EasyPGP.framework  github.com/lastochkanetwork/easypgp

# For Android
gomobile bind -target=android  github.com/lastochkanetwork/easypgp

After adding EasyPGP.framework to your project you can straight-forward use it.

Swift example:

let pubkey1  = "-----BEGIN PGP PUBLIC KEY BLOCK-----...."
let privkey1 = "-----BEGIN PGP PRIVATE KEY BLOCK-----...."
let pubkey2  = "-----BEGIN PGP PUBLIC KEY BLOCK-----...."
let privkey2 = "-----BEGIN PGP PRIVATE KEY BLOCK-----...."


let sender = EasypgpNewKeyPairWithKeys(pubkey1, privkey1)
let receiver = EasypgpNewKeyPairWithKeys(pubkey2, nil)
let receiver_with_privkey = EasypgpNewKeyPairWithKeys(pubkey2, privkey2)


let msg = EasypgpEncryptAndSign("hello, world!", receiver, sender, nil)
NSLog((msg?.cipher())!)

let decrypted = EasypgpDecryptAndVerify(msg, receiver_with_privkey, nil)
NSLog((decrypted?.text())!)
You can’t perform that action at this time.