Skip to content

Releases: teserakt-io/e4go

v1.1.0

16 Mar 17:10
be48926
Compare
Choose a tag to compare

Description

e4go v1.1.0 brings public key support to e4client, more flexibility and control over the storage of the client data, and some minor bug fixes and performance improvements.
See the upgrade instructions below to migrate from e4go v1.0.x

Improvements

e4go:

  • Reworked client storage to allow more storage options than a file (such as memory, browser local storage...). The new storage interface is compatible with the generated bindings, see the updated README for an example implementation of an Android FileStore. (#35)
  • Added SetC2Key command support and performance improvement by storing a precomputed shared key instead of recalculating on each calls (#36)

e4client

  • Added public key mode support (#24)

Fixes and bugs

e4go

  • SetIDKey command was rejecting Ed25519 keys (#39)
  • Switched dependency from github.com/agl/ed25519/extra25519 to github.com/teserakt-io/golang-ed25519/extra25519 due to repository deprecation notice (#41)
  • Typo fix (#38)

e4keygen

  • E4 Keygen now truncate an existing output file when --force flag is used (#40)

Known issues and upgrade instructions

  • Migrating to the new storage interface:

e4go <= v1.0.1

client, err := e4.NewClient(config, "./myClient.json")

e4go >= v1.1.0

saveFile, err := os.OpenFile("./myClient.json", os.O_CREATE|os.O_RDWR, 0600)
if err != nil {
	panic(err)
}
defer saveFile.Close()

client, err := e4.NewClient(config, saveFile)

Changelog

4d1b9ca Added extra validations when loading a saved client
4cddb5c Added missing return
b35ef1e Added missing support for ed25519 key sizes on SetIDKey command
8238455 Added more storage examples using filsystem for go and android
3cac3b1 Added more tests to sharedkey feature
925e0b9 Added pubkey support to e4client
796f2a6 Added seek error checks
227b97e Added shared key precomputation. Added new SetC2Key command
922698e Added truncate on open flags to ensure target key file does not contains additionnal data
66c353e CI indicator for github actions.
8e781f6 Cleaned up write
705b086 Cleaned up write
0e9794a Fixed build error
2dec803 Fixed code style and documentation
fb0b816 Fixed comment
a5fd526 Fixed doc typo
7c04942 Fixed outdated method reference in readme
d030eca Fixed variable name
2dfa90a Improved inMemoryStore
14bf3a7 Improved java / kotlin sample code
6779203 Improved test readability
04d08b3 Merge branch 'develop' into av/ed25519-dependency
09fad8f Merge pull request #24 from teserakt-io/fb/e4client-pubkey
cb86271 Merge pull request #33 from teserakt-io/add-Godoc-reference-to-README
a8c8486 Merge pull request #35 from teserakt-io/fb/storage-abstraction
f0b0db4 Merge pull request #36 from teserakt-io/fb/precompute-sharedkey
543cbd0 Merge pull request #38 from teserakt-io/fb/ciphertext-typo
b95096f Merge pull request #39 from teserakt-io/fb/setIDKey-keysize-fix
0a0c43d Merge pull request #40 from teserakt-io/fb/fix-keygen-overwrite
7670bd1 Merge pull request #41 from teserakt-io/av/ed25519-dependency
742711b Merge remote-tracking branch 'origin/develop' into fb/e4client-pubkey
4a6a13f Merge remote-tracking branch 'origin/develop' into fb/storage-abstraction
ffa35d8 Merge remote-tracking branch 'origin/develop' into fb/storage-abstraction
bca3348 README: add Godoc badge for easy access
4e485d1 Removed e4 filesystem dependancy
b0704c7 Renamed e4.Store to e4.ReadWriteSeeker
8fb7337 Renamed memoryStore -> inMemoryStore
53d6091 Replaced ErrToShortCipher with ErrTooShortCipherText. Fix #37
79b92d7 Replaced crytpo/ed25519 by golang.org/x/crypto/ed25519
6a62d7d Reverted readme link
8f750d8 Review fixes
580c6f2 Reworked client tests to improve readability
8f52277 Simplified how e4client loads from file
6c2df16 Switch to teserakt ed25519 extra repository.
6ad2437 Update dependencies to use Elligator-free repo.
fd648d8 Updated store interface to allow android bindings compatibility.
04dac96 go mod tidy

v1.0.1

20 Jan 09:28
Compare
Choose a tag to compare

Description

Android bindings support

Improvements

Fixes and bugs

  • None

Known issues and upgrade instructions

  • N/A

Changelog

c35e026 Added io.teserakt namespace to java package
4838bbb Cleaned up remaining types for android bindings. Added bindings build script
d4e2f71 Merge pull request #29 from teserakt-io/fb/mobile-bindings
931a6b5 Quick sentence fix to mention the example is using Kotlin.
1a74399 Review fixes
d0f4bc6 Tidying go.mod
2384e18 Updated readme
2a876b3 WIP mobile bindings
61c2f17 fix

v1.0.0

09 Jan 07:54
Compare
Choose a tag to compare

Description

Public release of Teserakt E4 library.

Improvements

  • Support of symmetric and public-key versions of the E4 protocol.
  • e4client, a simple interactive client application integrating the E4 library with symmetric key support.
  • e4keygen, a simple and secure key generation tool.

Fixes and bugs

  • None

Known issues and upgrade instructions

  • N/A

Changelog

56ac67b Add failure cases to the crypto unit tests. Repeat the tests a few thousand times to ensure we exercise the code as much as possible.
e3a9a07 Added CI lint and tests
1bb3afb Added PGP public key
261214b Added RandomCurve25519Keys. Bumped curve25519 version
1ea48b4 Added Sign method
9804ec7 Added ValidateCurve25519PrivKey. Added Curve key size constants
51da192 Added command and keyMaterial documentation
132a39f Added commands creation helper methods
7c593ea Added commands tests
6c3b34e Added comment on MarshalJSON to explain the reason of the intermediate struct
d142ed5 Added copyright. Cleaned import ordering
24fd5bb Added curve key generation helpers
0766666 Added error details to validation functions
7da9db9 Added explicit invalid type in panic
39d9c2e Added extra tests cases and cleaned up timestamp validation
86bb741 Added first tests for keys.Ed25519 key
cf89b30 Added goreleaser
60e19f8 Added json annotation to KeyMaterial implementations
a177a22 Added keygen
c0e2afb Added missing err check
e54cdc4 Added missing error and length checks on rand.Read calls.
c997765 Added more documentation
4971bc7 Added notes on E4 client and keygen in main readme
870eb78 Added test/data folder required by tests
c122e65 Added tests for keys.FromRawJSON
555a901 Added tests for keys.SymKey
736920d Argon2.Key uses KeyLen so constant can be changed at any time.
fa13d6e Build, then test. Test will naturally build.
a51fa6f C2 Proto Update for name-fields.
8ad10a6 Capitalize Ed/Curve25519 algorithms in keygen
62d464d Completed crypto package tests
c7679af Completed ed25519 key tests
054d17a Consistency with incoming changes from JP: switch internally between functions.
73cb035 Editorconfig, update hooks.
4302f7f Em change requests
7de3e8d Empty readme.
8b6faf2 Fix teserakt naming.
f10a998 Fix unit tests to account for 256-bit keys.
906e215 Fixed assertion order in tests to match go style.
8d00905 Fixed e4client construtor
8dd2ee5 Fixed error message on ValidateCurve25519PrivKey
20d9102 Fixed example to be usable by simple copy-paste
334594d Fixed licences date
e4f9e0b Fixed review comments
ae0e7cd Fixed review comments
b2a1915 Fixed review comments
67a7bc4 Fixed typo
c9d7c26 Fixed typos
787111d Fixed zero check on curve25519 private key validation
7fc8990 Go modules.
b048c5a HashPwd should return 32-byte keys, not 64.
09816ae Hex-encoded constant lengths.
7991453 Improved NewClient* comments and arguments naming
34f339a Initial commit.
bf836aa Library code should not follow pkg/, cmd/ go standards.
5933d4f Make readme example clearer.
5389066 Merge branch 'develop' into fb/fix-examples
64e6326 Merge branch 'develop' into fb/keygen
373c946 Merge branch 'develop' into fb/rename-package
6a0e7b6 Merge branch 'fb/improve-validation' into 'master'
fcf489a Merge branch 'fb/openclient' into develop
64e6165 Merge branch 'jp/keyandidlen' into 'develop'
0ab582b Merge branch 'jp/keytransition' of github.com:teserakt-io/e4go into jp/keytransition
1643c27 Merge branch 'master' into fb/client-refacto
381c100 Merge failure detection scripts.
e478004 Merge in e4clientlib
bf3ca86 Merge pull request #1 from teserakt-io/fb/openclient
542b216 Merge pull request #10 from teserakt-io/fb/remove-protectCommandPubKey
9e97f60 Merge pull request #15 from teserakt-io/fb/fix-license
04f3d5f Merge pull request #16 from teserakt-io/fb/fix-examples
7b4c9b3 Merge pull request #17 from teserakt-io/fb/rename-package
304c081 Merge pull request #18 from teserakt-io/jp/edits
1789fb8 Merge pull request #19 from teserakt-io/fb/constructor-options
345f5c3 Merge pull request #2 from teserakt-io/fb/cr-fixes
e6f4af4 Merge pull request #20 from teserakt-io/fb/keygen
56e4ad5 Merge pull request #21 from teserakt-io/fb/licences-dates
df1f211 Merge pull request #22 from teserakt-io/fb/e4client
a917993 Merge pull request #23 from teserakt-io/jp/readme
7ffac1a Merge pull request #25 from teserakt-io/fb/readme
d05b352 Merge pull request #26 from teserakt-io/fb/release
f3f9a81 Merge pull request #27 from teserakt-io/jp/readmes
565d049 Merge pull request #28 from teserakt-io/fb/readme-tweaks
fb2465c Merge pull request #3 from teserakt-io/fb/newPubKeyClientPretty-returns-pubkey
24edc08 Merge pull request #4 from teserakt-io/fb/simplify-curve-keys
feeb0f1 Merge pull request #5 from teserakt-io/fb/command-creation-helpers
b890cc6 Merge pull request #7 from teserakt-io/jp/keytransition
27e0b78 Merge pull request #8 from teserakt-io/jp/edcrypto
552fb22 Merge pull request #9 from teserakt-io/fb/copyright
2d422c6 Moved E4 client into e4go
58a7db8 Moved keygen readme into cmd/e4keygen
8d48f8c Moved license on top of files. Fix #12
8c19eb1 Name fields: Adjust protobuf with C2 to support Name entries.
25e1141 Name-fields support: validate names are within length constraints.
ec3c2ff Payload length incorrect in unit tests; add support for config files.
0f93f67 Process all E4 events on Unprotect. Do not expose payload to user.
c5f60e7 Readme updates
8b31f37 Remove redundant files from e4common.
8660c2f Removed -name flag
9de96d2 Removed ProtectCommandPubKey, added ScalarMultEd25519
1151c4a Removed READMEs from release archives
bf3d798 Removed deprecated ScalarMult
7e7b602 Removed sample client construction from godoc
5a09403 Renamed ScalarMultEd25519 to Curve25519DH
40f5ae0 Renamed command helpers
ef96031 Renamed e4common to e4go
264662f Renamed package e4go to e4
639cf4d Renamed package e4go_test to e4_test
02b2292 Replaced log by fmt in example code
363881e Review fixes
0b7fefc Reworked client structure
ad09cdb Simplified client creation
f3f4dce Simplified commands definition and processing
efc17e8 Turn on CI for e4common.
a7fef8d Up the coverage; run coverage tools.
c11e392 Update go.mod
69ac14b Update go.mod/sum for grpc. Create brief test for types.
5ab33b0 Update readme on usage.
12d8a3c Update readme ready for release.
f7549c1 Updated Contributing and Security sections. Removed extra newlines
0e1ef68 Updated NewClient constructor and options, Fix #11
086a57f Updated NewPubKeyClientPretty to returns the generated public key
c98ab37 Updated README
2efcd70 Updated TopicForID() to be exposed by the package
cb7b002 Updated client interface to make most method private
427ed83 Updated deps
b8ce051 Updated go.sum
8c3ea47 Updated link to E4 in readme
2b23f4c Updated module path from gitlab to github
e6665c2 Updated mqtt url to use demo env
d9848de Updated readme
6962eaf Updated readme
e641fcc Updated readme
6fe8be7 Updated workflow to use shared actions
5d4480d Upstream change to miscreant, now miscreant-go.
1320ecb WIP, nothing works yet
78b8ef0 adapted tests, minor tweaks
e715def alloc-less key validity tests
bada82c camelCase
246d950 client readme
ca504f1 contributing
93f6d5f convetions
aa80959 dont transition key if received key is already known
169caae fb review fixes
f1e81d0 fixing more Em comments
53aa95d go build, no specific build script.
97210b9 hashID returns the right length
8d86b78 imports order
6de636e key 64->32, id 32->16
b6bce60 key transition test fix
e7a638b key transition tests
13f509c key transition validation test, more accurate key transition testing
4204894 minor edits
76a9f2f missing change request fix
3ee82f5 mod
f4fd2ae mods
53b774a more precise error types; testing key transition when same key resent
493f545 more unit tests
4e40142 protect/unprotect tests
066c4fc protos
316e265 pubkeyization, WIP
8147e53 readme and license
821d5ac readme editing [WIP]
cf56ae1 readme tweaks
f11c570 readme tweaks, toc, logo
5c96c04 removetopic removes old key too
d72216c rename
b5ffca0 retypo
c6e44ec rewind to 1.12 support
47d0518 rm CoC, as discussed we will use a different one
84758f2 rm print
9426bd5 setTopicKey key transition
4731522 setTopicKey key transition
f202225 tentative command test - segfaults
bba529e test pubkey
46c56f8 tests fix
6f53acf timestamp enforcement
3b43c5f timestamp enforcement
0689a3d todo: tests
d06d044 ts key validation fix; more precise ts tests
f8b2de0 typo
6fca728 typoz
1a38c22 unprotect key transition
42dc758 unprotect key transition
00c8337 up
97a120f up
ddb43c2 use ed25519 from crypto/ instead of /x/crypto/
c69a239 vgo files
079240e wip