Commit graph

44 commits

Author SHA1 Message Date
Awn Umar
a8788d6894
Update docs and add github templates 2019-05-31 19:54:54 +01:00
Awn Umar
3eeb430f92
Merge branch master into development 2019-05-30 06:02:03 +01:00
Awn
4c28664de7
Implement Cirrus-CI Integration (#84) 2019-05-30 05:55:28 +01:00
Awn Umar
3ea58f31a7
remove clone; implement tests and repr methods 2019-05-26 19:08:26 +01:00
Awn Umar
8265a2536d
crypto: use local custom emtropy pool 2019-05-13 17:08:37 +01:00
Awn Umar
e61835b2d4
Updates 2019-03-22 21:57:39 +00:00
Awn Umar
e468e76d1a
Add examples 2019-03-22 00:58:40 +00:00
Awn Umar
8740253ea8
some improvements to errors 2019-03-21 22:28:44 +00:00
Awn Umar
93fdada0a1
patch: make use of start arg and add ByteArray8 2019-03-21 20:57:48 +00:00
Awn Umar
5583953cd7
Port a bunch more things. Still need to work on Enclaves and writing tests and examples and docs. 2019-03-21 18:58:07 +00:00
Awn Umar
fbef9a3b39 Rewrite and refactor. Core functionality moved to submodule. Many fixes and improvements. Todo: re-write frontend 2019-02-24 19:52:41 +00:00
Awn
a49bd97f79
Encrypting secrets in memory (#73) 2018-06-30 21:16:18 +01:00
Awn
8acaac018c
Update PGP key information. (#71) 2018-06-18 16:57:56 +01:00
Awn
32b866d823 Add comment about signed releases. 2018-02-12 19:20:54 +00:00
Awn
2ec36ec147 Minor rewording. 2018-02-12 18:16:15 +00:00
Awn
730de013ad
Switch to using golang/dep (#50) 2018-02-12 17:24:26 +00:00
Awn
f8f32f8d64
vendor: switch to godep (#48)
Glide itself recommends this switch.
2017-11-18 17:05:02 +00:00
Awn
1a2e24596b deps: encourage vendoring (#43) 2017-10-23 09:38:36 +01:00
Awn
3f5a358670 immutability: redesign api to improve verbosity (#40)
* testing: simplify command

Go 1.9 no longer includes the vendor directory in wildcard commands, so we can remove the verbosity.

* docs: expand contributing guide

* docs: rewrite features list

* docs: remove example

The example for the New function is pretty much redundant.

* memcall: remove execute permissions

Related to #37. More refactoring needed.

* dependencies: update

* immutability: improve verbosity

This change changes the nomenclature and API used to improve verbosity and encourage better programming style.

* docs: improve docs summary

* api: rename EqualTo => EqualBytes

The new name is more clear about its intentions.

* patch: race condition

Use internal API to prevent mutex conflicts.

* docs: improve wording

* docs: fix outdated wording

* canary: minor optimisations

* destroy: refactor and optimise
2017-10-21 00:15:07 +01:00
Awn
c782637f2b Minor updates to names and documentation. (#35)
* Document and test pre-existing behaviour.

* Replace integer constant with sys/unix definition.

* Update project excerpt in README.md

* Rename finaliserGuard to littleBird
2017-08-28 15:19:55 +05:00
Awn
6d2f8c1a1f
Update AppVeyor URL 2017-06-06 19:59:28 +01:00
Awn
5561931010
Update URL to reflect change. 2017-06-06 19:45:17 +01:00
Awn
5e1a769470
Update AppVeyor URL 2017-06-05 18:49:34 +01:00
Awn
b41d02c85c
Update to reflect new username 2017-06-05 18:44:44 +01:00
Awn
e07c447673 Add API functions for manipulating buffers (#10)
* Rename auxiliary to internal

* Added equal and duplicate functions.

* Added the rest of the functions.

* Fix deadlock bug.

* Add testing for destroyed flag.

* Add TestEqualTo

* Rename ErrZeroLength to ErrInvalidLength.

* buffer underflow error does not need to be detailed

* Add ErrReadOnly.

* Rewrote things to improve readability.

* Trim returns a LockedBuffer instead.

* Fix bug in Trim.

* Expand tests for Trim.

* Destroy LockedBuffers after testing.

* Add note about time-constant comparisons

* Make error messages more explicit

* Fix error message for csprng

* Converted copying functiont to time-constant equivalents

* refactored tests

* Added comments. Fixed bug in Split. WipeBytes now does a random pass before zeroing out.

* Added comment about random pass. Reordered Destroy.

* Rename internal.go to internals.go

* Fix bug in copying functions.

* Extended tests for copying functions

* Written tests for Split and Duplicate

* The slice that is given to WipeBytes is not inherently thread-safe

* The CSPRNG is not thread safe. Make it so.

* Increase number of goroutines in concurrency test

* Fix bug in Trim

* Listen to your own previous advice.

* Allow the first pass

* Add function for creating a LockedBuffer filled with CSPR bytes.

* Minor edits to comments

* Minor edits to comments
2017-05-25 19:57:25 +01:00
Awn
635edd4010
Minor rewording and syntax fixes. 2017-05-03 21:55:48 +01:00
Awn
c683afe098
Minor rewording. 2017-05-02 22:31:08 +01:00
Awn
f9d65667c3 Add a Destroyed flag. (#8)
* Added a Destroyed flag and made the appropriate API changes.

* Add note about using releases.

* Expand comment to clarify that no API calls can be made on destroyed buffers.

* Return an error from New() too.

* Moved helper functions to their own file.

* Check set metadata too.
2017-05-02 22:11:17 +01:00
Awn
04655402b7
Merge branch 'master' of github.com:libeclipse/memguard 2017-05-02 05:58:27 +01:00
Awn
d1787c30dd
Minor re-wording. 2017-05-02 05:58:16 +01:00
Awn
eccc13b8f9 Make it clear that it's a shell command. 2017-05-01 15:58:11 +01:00
Awn
163d5a1084
Including the fingerprint isn't required. 2017-05-01 15:16:17 +01:00
Awn
ec1048ff1d
Expand installation instructions to include sig-verification. 2017-05-01 15:14:37 +01:00
Awn
e212030df2 v0.2.0 - Manage memory manually and implement new API (#5)
* Added wrapper for Unix's Mprotect

* Panic on failed Lock

* Replaced Mlock code with libsodium counterpart

* Replaced pkg-config with LDFLAG

* Install libsodium as a dependency

* Install libsodium as a dependency, properly

* Install libsodium as a dependency, third time lucky

* Auto-confirm prompts

* Attain super-user before installing

* Install libsodium from tarball instead

* sudo su feezes the conatiner

* Build libsodium in /tmp/

* Really?

* Extract libsodium to tmp

* Temporary change to attain original working directory

* Switch back to working directory after installing libsodium

* Install from apt

* Install from apt, with confirmation

* Install from apt, with more confirmation

* Fix OSX tests too

* cgo is overkill

* Fix tests

* import golang.org/x/sys/windows

* This shouldn't return anything

* Implemented all of the required syscalls on both Unix and Windows

* Update local dependencies

* OSX doesn't support all the functions

* commas are AND

* Fix syntax errors in Windows

* Make Protect function partable

* Implement the front-facing API

* Basic tests

* Guard Pages added and bug fixes

* VirtualFree fix

* Formatting updates and fix windows tests

* Try again fixing windows tests

* Revert changes to Alloc in windows

* Updated a lot. Refactored a lot. Fixed a lot.

* Finishing up

* Added basic test structure. Removed useless calculation.

* Added some tests

* Add CSPRNG for the upcoming canary

* Fix some errors. Write more tests.

* Greater consistency in variable names.

* Test fix on windows.

* Nope

* Switch back to using slices

* Add canarys to detect buffer underflows

* Use global canary instead of individual ones

* Fix tests

* Add Locking functionality back

* Cleanup after tests

* Debugging for windows

* Remove debugging on windows

* Unlock the data pages specifically when destroying

* Fixed nasty bug. Credits to @dotcppfile for spotting it.

* Fixed nasty bug. Credits to @dotcppfile for spotting it.

* Update documentation

* Improve efficiency of DestroyAll. Credits to @dotcppfile

* Add small comment on what the setup protects against.

* Remove notice.

* Update documentation and add PROT_EXEC on Unix.

* Add PROT_EXEC on Unix.

* Remove Lock()

* CatchInterrupt() now can accept a function

* Use pointer arithmetic instead of storing a copy. Full credits to @dotcppfile

* Add authors file

* Add a State field to store the current protection value of the Buffer

* Fix some comments and simplify _getBytes function

* Reword parts of README.md

* Remove leftover Test from removed function

* Keep contributions concise.

* Update pass on dependencies.

* Reword AUTHORS file.

* WriteOnly isn't supported on windows, and isn't useful. Remove it.

* Protect should return nothing on all systems for compatibility.

* Remove outdated references to Locking from comments.

* Remove reference to removed feature from README

* Added array instructions to documentation.

* Add Mutex lock to make MemGuard threadsafe.

* Add note about thread-safety in MemGuard.

* Add proper thread-safety to the API.

* Improved mutexing on Destroy functions

* Improved comments and some code.

* Improved more comments. Added a test.
2017-05-01 01:50:48 +01:00
Awn
9dbf41bc26
Add disclaimer as discussed in #3 2017-04-22 22:43:16 +01:00
Awn
34508225e1
Update documentation 2017-04-22 14:04:12 +01:00
Awn
22cf99a1fa
Make it clear that this is a command 2017-04-22 09:54:59 +01:00
Awn
a55cf245fc
Fix more typos 2017-04-22 09:53:51 +01:00
Awn
b287674186
Remove usage 2017-04-22 09:47:52 +01:00
Awn
cbad480592
Add documentation 2017-04-22 09:42:39 +01:00
Awn
142ef7417e
Remove DCI 2017-04-22 09:25:37 +01:00
Awn
3cf6e9d750
Fix urls 2017-04-22 09:17:27 +01:00
Awn
bbc6305cf4
Initial commit 2017-04-22 09:16:20 +01:00
Awn
8afc0d6141 Initial commit 2017-04-22 08:40:41 +01:00