In swift, strings must be strictly utf8, and when golang
returns a string with non utf8 characters, it gets translated to
an empty string for utf8.
To avoid this situation, we sanitize strings before returning them.
This behavior is only enabled when building with the "ios" build tag.
In pgpMessage.SeparateKeyAndData(), the parsing would
ignore AEAD encrypted data packets. Which would result
in a split message with a nil data packet.
We add support for AEAD encrypted data packets.
This also affects `NewPGPSplitMessageFromArmored` and `NewPGPSplitMessage`.
* Implement GetArmoredWithCustomHeaders
ArmorWithTypeAndCustomHeaders can be reused by other PGP armoured
objects.
* Update linting, and lint accordingly
`godot` has been improved and `goerr113` has been added (and ignored
here).
* Add custom headers for keys
* Minor comment changes
Co-authored-by: Aron Wussler <aron@wussler.it>
* Reduce complexity of SignatureCollector.Accept
* Add stylecheck linter, and lint accordingly
* Rephrase some comments
* godot - Top level comments should end with a dot.
* nestif - Reduce nested complexity of code
* Review changes
Co-authored-by: Aron Wussler <aron@wussler.it>
* Update header version to 2.0.0
* Add space to cleartext message armouring
* Fix password encrypted binary files
* Clear key private params in helpers
* Do not unlock key if private key is nil
* Document changes
* Use defer for ClearPrivateKeyParams
* 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
* 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