Commit graph

481 commits

Author SHA1 Message Date
Maarten Billemont
26c01a5eaa Adopt pkg-config for more reliable library detection.
[IMPROVED]  Using pkg-config we can more reliably find and use installed dependency libraries on the system.
2023-01-14 11:16:21 -05:00
Maarten Billemont
8d6d670197 Improve cmake library detection.
[ADDED]     CMake script for finding libsodium on your system.
[UPDATED]   CMake adds target link dependencies rather than relying on variables where possible.
2022-10-16 01:28:36 -04:00
Maarten Billemont
a5e7aab28f Improvements for new users.
[UPDATED]   Default submodule to read-only public address.
[ADDED]     Detect when jq is missing and emit a useful message.
[UPDATED]   API submodule update.
2022-02-05 17:05:05 -05:00
Maarten Billemont
15c45ebcac More pure scrypt benchmark.
[UPDATED]   Use a more pure scrypt primitive to benchmark its performance, allowing comparison with tools such as hashcat.
2021-05-16 16:00:29 -04:00
Maarten Billemont
a2d68d7620 Update API moving away from Apache base64 and updating AES.
[UPDATED]   Adopting updated API, removing non-GPL compatible base64 and updating the AES library.
2021-05-16 15:58:07 -04:00
Maarten Billemont
c47d6074c1 Add test cases to test personal type passwords as well.
[ADDED]     Support for personal type passwords in the standard test cases.
2021-05-16 15:56:57 -04:00
Maarten Billemont
5c1924eb6f Transition to spectre.app for test site name.
[UPDATED]   Transitioning away from masterpasswordapp.com to spectre.app in the Spectre algorithm test case.
2021-05-16 15:26:38 -04:00
Maarten Billemont
dfa33ec4b5 Use a bcrypt with 10 rounds.
[UPDATED]   Benchmark based on bcrypt of 10 rounds, since it's a widely adopted minimum standard.
2021-04-07 08:53:49 -04:00
Maarten Billemont
7b09c7c7ed Bump API for improved compiler support.
[UPDATED]   api tweaked for supporting a wider array of compilers.
2021-04-07 08:52:55 -04:00
Maarten Billemont
04b153f54a Restore the C build instructions.
[ADDED]     Instructions for building the C command-line program.
[ADDED]     If CC is set, use it as the compiler.
2021-03-29 12:59:43 -04:00
Maarten Billemont
180cc3db8b Improve cmake search for sodium library.
[IMPROVED]  Ability for cmake to find installed sodium library.
2021-02-28 13:37:26 -05:00
Maarten Billemont
c9f84f0620 Bump API to fix memory leak.
[FIXED]     The core API fixed an internal site key leak.
2021-02-28 11:15:30 -05:00
Maarten Billemont
08d1c01f36 Master Password is now Spectre.
[UPDATED]   Renamed all Master Password names and namespaces to Spectre equivalents.
2021-02-28 11:14:33 -05:00
Maarten Billemont
5361fc2961 Added ability to omit trailing newline from result output
[ADDED]     Added -n to ensure output can be raw result,
            avoiding need for post-processing. Resolves #15
2021-02-18 11:58:48 -05:00
Maarten Billemont
3a8f676ae6 Update nomenclature.
[UPDATED]   Nomenclature is changing to remove "master" and "service" terminology.

TECHNICAL:
    - user-name . user-secret => user-key
    - user-key . site-name . site-counter . site-template => site-password

PRODUCT:
    - Full Name . Personal Secret => Spectre Key
    - Spectre Key . Site Domain . Site Counter . Site Template => Site Password
2021-02-18 11:58:01 -05:00
Maarten Billemont
60c61df44f Build against C11.
[UPDATED]   Add C language version to compiler command.
[UPDATED]   Default to clang(1) if available.
2021-02-14 11:40:26 -05:00
Maarten Billemont
f79c1208b1 Reference core API code through submodule. 2021-02-01 09:39:55 -05:00
Maarten Billemont
bba0db07fe Force a predictable size onto types when printing. 2021-02-01 09:36:29 -05:00
Maarten Billemont
0fd58eba6b Scope LogLevel to MPLogLevel to avoid collisions with other APIs. 2020-11-21 11:41:48 -05:00
Maarten Billemont
ef635f6e30 Differentiate between global and service results. 2020-09-29 09:51:29 -04:00
Maarten Billemont
ae29050067 Correct handling of user fallback in CLI. 2020-09-28 22:59:10 -04:00
Maarten Billemont
4da64db136 Record key ID inside MPMasterKey and MPServiceKey. 2020-09-28 19:06:31 -04:00
Maarten Billemont
9e39863efd Migrate marshalled sites to services. 2020-09-28 17:27:20 -04:00
Maarten Billemont
e2ca4fa8fd Safer realloc & nomenclature.
- size: byte count
- count/length: object count
- more type-safe mpw_realloc with checked type argument & internalized object count to size.
- avoid void* wherever possible.
2020-09-28 14:56:45 -04:00
Maarten Billemont
3cbe60e1c7 API rename.
- Site -> Service
- siteCounter -> keyCounter
- Fallback none service identification to user identification.
- Record algorithm in MPMasterKey and MPServiceKey and remove it from
  API to prevent algorithm mixing.
- Restored API buffer type checking.
- More flexible buffer handling for primitives to allow use of sized
  array buffers.
2020-09-28 14:56:13 -04:00
Maarten Billemont
ca34ed8964 If no login state in mpsites, login type is none. No site login defaults to user login. 2020-09-27 17:33:01 -04:00
Maarten Billemont
6b21429551 Make C API thread-safe.
- Expunge use of unsafe shared storage.
- Make MPKeyID a self-contained value type.
- AES state held on the local stack.
- Skip realloc if target size already met.
2020-09-25 13:48:35 -04:00
Maarten Billemont
d435f5852f Standard user-wide login name. 2020-09-13 17:33:41 -04:00
Maarten Billemont
8007292b8a Improve key typing.
- Make key type less opaque.
- Expose and embed key size information through struct.
- Adopt standard of typing buffers through void* to allow structures to be passed into them.
2020-09-10 10:12:52 -04:00
Maarten Billemont
cc7b791fad Add nonstandard output type tests for i,r + fix indentation. 2020-07-01 16:42:45 -04:00
Maarten Billemont
4282302961 Fix MPW_COLOR test, if set to 0. 2020-05-24 19:54:50 -04:00
Maarten Billemont
8b1feb8e90 Log out active user and key when user is changed or deleted or unset. 2020-05-24 19:54:50 -04:00
Maarten Billemont
f9488a3b7f Use the user, not a site algorithm, for generating and testing the keyID.
- Order of fall-back formats from most to least preferred.
- The keyID should be based on the user algorithm, not the site algorithm.
- Standardize mpw_format* function names.
2020-05-24 19:54:50 -04:00
Maarten Billemont
1b8a597cf5 Improved repeat generation of master password suggestions. 2020-05-24 19:54:50 -04:00
Maarten Billemont
97d822667b Test result output in export files. 2020-05-24 19:54:50 -04:00
Maarten Billemont
49979493b3 Improved string comparison.
In particular, of strings whose value isn't dependent on its casing.
2020-03-04 01:50:25 -05:00
Maarten Billemont
08e7164189 Standard key providers and reliability improvements.
Make standard key providers available to applications, not just CLI.
Improves clean-up of key providers when switching between key providers.

Enable use of mpw_marshal_write with a NULL file & more reliable file
back-writing, in particular if its pointer changes during realloc.

Return the length of the mpw_unhex buffer.
2020-02-28 21:31:15 -05:00
Maarten Billemont
a605db8e12 Crash logging & analytics.
Remove Crashlytics & Google Firebase.

Detailed event logging hooks.

Track using Heap, Amplitude, Mixpanel.  Crash logging through Sentry.
2020-02-28 21:30:09 -05:00
Maarten Billemont
65fcf66714 Huge refactor to do marshalling completely through mpw data object now. 2019-10-02 23:16:20 -04:00
Maarten Billemont
3f8d31ae8e Algorithm version C files need to be separately compiled now. 2019-10-02 23:16:14 -04:00
Maarten Billemont
ff9867f68f Refactor in preparation of reading ext data prior to auth. 2019-09-30 13:08:04 -04:00
Maarten Billemont
cd61717ee5 Log native mpw into Java. 2019-09-24 17:46:33 -04:00
Maarten Billemont
5582eda2e9 Use the included words dictionary. 2019-09-20 15:02:45 -04:00
Maarten Billemont
2333c457e8 Build fixes. 2019-09-20 15:01:52 -04:00
Maarten Billemont
12166d43c9 API update. 2019-09-20 15:01:38 -04:00
Maarten Billemont
fb7ee6b38a Marshal data API & fixes. 2019-07-28 12:36:45 -04:00
Maarten Billemont
43cd7dac71 Persist unknown JSON properties, expose to API, safety improvements. 2019-07-27 09:24:39 -04:00
Maarten Billemont
68680a3c4c Full file marshalling and prepare to make entire document available. 2019-07-25 12:08:07 -04:00
Maarten Billemont
1bce9a9db5 Allow marshalling without masterKey and record keyID in user. 2019-07-04 09:50:00 -04:00
Maarten Billemont
cc2249ef9a Allow unauthenticated marshal reading to reset master key. 2019-07-02 10:03:26 -04:00