Adds the helper `VerifySignatureExplit()` to get an explicit `SignatureVerificationError`
when verifying a `PlainMessageReader`. This is needed for mobile apps, that
can't cast an error to a signature error.
* barebone streaming functionality
* encryption needs to return a writecloser
* added eof check
* workaround for reader problem with copies
* separate mobile wrappers from main api
* add a clone in the read result to avoid memory corruption
* refactor to reuse code, and fix verification
* have to give the verify key at the start of the decryption
* enfore readAll before signature verification
* streaming api for SessionKey
* add split message stream apis
* name interface params
* fix streaming api so it's supported by go-mobile
* hide internal writeCloser
* fix nil access
* added detached sigs methods
* started unit testing
* unit testing and fixed a bug where key and data packets where inverted
* remove unecessary error wrapping
* figured out closing order and error handling
* add GC calls to mobile writer and reader
* remove debugging values and arrays
* writer with builtin sha256
* unit testing the mobile helpers
* comments and linting
* Typo in error
Co-authored-by: wussler <aron@wussler.it>
* Add GetKeyPacket doc
Co-authored-by: wussler <aron@wussler.it>
* Add rfc reference in comments
Co-authored-by: wussler <aron@wussler.it>
* small improvements
* add compatibility tests with normal methods
* remove unecessary copies in the tests
* update go-crypto to the merged changes commit
* update comments of core internal functions
* remove unused nolint comment
* group message metadata in a struct
* fix comments
* change default values for metadata
* change the mobile reader wrapper to fit the behavior of java
* remove gc calls in the wrappers to avoid performance penalties
* bring back the former Go2MobileReader to be used for ios
* Update crypto/keyring_streaming.go
Co-authored-by: wussler <aron@wussler.it>
* return an error when verifying an embedded sig with no keyring
* Update crypto/sessionkey_streaming.go
Co-authored-by: wussler <aron@wussler.it>
* linter error
* update changelog
* update changelog
Co-authored-by: wussler <aron@wussler.it>
* modified build script to work with updated fork of go-mobile
* changed spacing and added trace for easier debugging
* fixed issue with user input overwritten
* removed mentions of make
* use go 1.16 in builds
* disabled some linters
* updated change log
Co-authored-by: wussler <aron@wussler.it>
* add signcryption methods to the keyrings
* added signing and verifying keyrings
* added nil checks
* added unit test for signcrypt
* updated changelog
* switched the keyrings in the api
* update the error messages
* changed the names of the keyRing variable
* 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>