Commit graph

56 commits

Author SHA1 Message Date
Daniel Huigens
781681b548 Use Entitiy.EncryptionKey instead of reimplementing it
This fixes us sometimes using subkeys whose key flags allow
encryption but don't have a valid algorithm for encryption,
or that are expired, etc.
2019-06-04 16:45:33 +02:00
wussler
e65ed17b41
Refactor api (#6)
* Refactor library, remove duplicates

* Rebuild structure to use Messages and Signature models

* Use PGPSplitMessage

* Remove signature model

* Various fixes

* Add helpers with tests

* Fixes, add some docs, add tests

* Add attachment helpers

* Add helpers Symmetric encryption

* Edit docs + examples

* Rename kr to keyRing

* Various fixes for documentation

* Edit JSON handling functions, add decrypt keyring via token

* Add proposal changes doc

* Fix CI

* Drop *Message functions, join CleartextMessage and BinaryMessage

* Change canonicalization and trimming only to text signatures

* Add cleartextsignature, detach signature from message model, move helpers

* Documentation, remove optional parameters

* Move verification to separate model

* Don't return message in VerifyDetached

* Update table of contents in readme

* Appease golint

* Run go fmt

* Rename Encrypt/DecryptMessageWithPassword to ..WithToken

These functions shouldn't be used with user-provided passwords,
as they don't do any key-stretching.

* Change key generation usernames
2019-06-03 17:00:01 +02:00
Daniel Huigens
4ef882c564 More documentation fixes 2019-05-15 15:17:03 +02:00
wussler
388fa872e7 Rename functions, clarify examples (#3) 2019-05-15 14:56:49 +02:00
wussler
b3047cee4d Improve docs for keyrings (#2) 2019-05-15 14:36:04 +02:00
Daniel Huigens
7d9930b8e0 Improve documentation and naming
- Rename pmmime to gomime
- Rename pmKeyObject to pgpKeyObject
2019-05-15 14:34:22 +02:00
Daniel Huigens
30ee92e63b Rename pmcrypto.go to gopenpgp.go 2019-05-15 13:51:42 +02:00
wussler
b074657c90 Add tests, remove duplicate signing functions (#1) 2019-05-15 13:48:47 +02:00
Daniel Huigens
d4cdec5229 Move subtle.go to its own package 2019-05-15 00:35:39 +02:00
Daniel Huigens
bb1be4a43b Rename PmCrypto to GopenPGP 2019-05-14 18:12:35 +02:00
Daniel Huigens
536a499f94 Rename go-pm-mime to go-mime 2019-05-14 18:09:06 +02:00
Daniel Huigens
da2e0f77f0 Rename package to gopenpgp 2019-05-14 18:09:06 +02:00
Aron Wussler
b42e382224 Add signature tests, fix tests 2019-05-14 16:08:25 +00:00
Daniel Huigens
4081e693fc Fix build
`errors` import was missing due to conflicting PRs.
2019-05-14 16:51:02 +02:00
Daniel Huigens
0931705fce Merge branch 'addexamples' into 'master'
Add examples

See merge request ProtonMail/go-pm-crypto!20
2019-05-14 14:44:08 +00:00
Aron Wussler
78e3abb0d8 go vet and lint
* Naming
    * If this is not some OpenPGP standard I follow rule that `DES` should be
      upper case as it is abreviation and `Triple` should be camel-case as it
      is normal word hence `TripleDES`
    * rename `errors2` -> `errorsPGP`
* long lines
    * https://github.com/golang/go/wiki/CodeReviewComments#line-length
    * I bit improved long lines based on my folding
    * reuse type in definition if possible i.e. `a string, b string, c string` -> `a,b,c string`
    * `if long_statetent(); err!=nil {` -> `long_statement;↵ if err!=nil {`
    * spaces around operators (e.g. `a + b` -> `a+b`)
* removing empty lines on start and end of scope
* comments
    * on all exported functions
    * start with function name
* import:
    * order in alphabet
    * separate native, golang.org/x/ and our libs
2019-05-14 14:42:38 +00:00
William Gotti
0421e1c829 Add Encrypt/Decrypt examples 2019-05-14 15:45:15 +02:00
Daniel Huigens
b1e3bd78d1 Don't loop forever when passed an incorrect password 2019-05-14 13:34:42 +00:00
William Gotti
e1098f7d34 refactor functions and merge in keyring 2019-05-14 08:07:49 +00:00
Aron Wussler
8af460ba61 Create key.go unit tests 2019-05-13 14:06:54 +00:00
William Gotti
b820c14c1a Remove unused code + handle errors 2019-05-13 12:42:29 +00:00
William Gotti
5cdec38a18 fix typo / improve documentatation 2019-05-13 12:33:01 +00:00
Jakub
9b75197da8 fix rsa type 2019-05-10 12:53:48 +02:00
Jakub
532ce66247 found TODO while patching android 2019-05-10 08:08:03 +02:00
Aron Wussler
56a73b1532 Add new key tests 2019-05-09 20:13:30 +02:00
Aron Wussler
fd27ec08fb Fix existing tests, move large constants to files 2019-05-09 18:19:14 +02:00
Daniel Huigens
2091fc106c Use new KeyExpired function 2019-04-27 07:32:20 +02:00
Daniel Huigens
ea2fcb9438 Handle encrypt error in EncryptAttachment 2019-04-27 07:32:20 +02:00
Jakub
99c48c2e4e fix crash on missing keyring 2019-03-07 17:39:34 +01:00
Jakub
968888eb0e change error message pmapi -> pm-crypto 2019-03-07 17:03:16 +01:00
Jakub
36b497d591 fix compile 2019-03-07 16:56:12 +01:00
Jakub
37459ffa7b first key id 2019-03-07 15:15:35 +01:00
Jakub
a92113e341 format and comment 2019-03-07 14:23:38 +01:00
Jakub
8f4bbfc780 return decrypt error 2019-03-07 14:08:17 +01:00
Jakub Lehotsky
b218f523af Methods use + unit tests update 2019-01-11 00:23:00 +01:00
Jakub Cuth
ec2deeb892 Merge branch 'feat/scrypt-cost-param' into 'feat/pmapi-crypto-refactoring'
Parameterize cost factor N of scrypt

See merge request ProtonMail/go-pm-crypto!6
2019-01-07 12:42:14 +00:00
Jakub Lehotsky
1ac42ecce1 Merge branch 'feat/pmapi-crypto-refactoring' of https://gitlab.protontech.ch/ProtonMail/go-pm-crypto into feat/pmapi-crypto-refactoring 2019-01-07 12:39:02 +01:00
Jakub Lehotsky
39f5b3af18 Method from go-pmapi merge 2019-01-07 12:36:57 +01:00
Daniel Huigens
102d7c2d5f Parameterize cost factor N of scrypt 2018-12-19 11:52:52 -05:00
Daniel Huigens
9c0a78e7e2 Add symmetric AES encryption functions 2018-12-03 15:08:04 +01:00
Jakub Lehotsky
d7f0550a4b Low-memory garbage collector 2018-11-22 10:53:14 +01:00
Jakub Lehotsky
686d4f1b7d Medning wrong commit 2018-11-22 00:01:18 +01:00
Jakub Lehotsky
8cf5054ff2 Readded deleted sym.encryption methods 2018-11-21 23:44:33 +01:00
Jakub Lehotsky
fc706ffa3e Signing/unlocking entities simplification 2018-11-21 21:11:30 +01:00
Jakub Lehotsky
d57b71e5ec Android-side KeyRing reuse refactoring support 2018-11-09 13:03:46 +01:00
Jakub Lehotsky
984f8eb391 Android stable version 2018-11-09 02:08:39 +01:00
Jakub Lehotsky
3fe6899fbb Android stable version 2018-11-09 02:03:19 +01:00
Jakub Lehotsky
36f8e2d437 Issue #3 - forgotten added new files 2018-11-05 23:01:53 +01:00
Jakub Lehotsky
fdd1a727cb Issue #3: mobile client fallback version 2018-11-05 22:55:45 +01:00
Jakub Lehotsky
0bf075d49d Minor build fixes 2018-11-01 17:03:43 +01:00