mirror of
https://github.com/rwinkhart/libmutton.git
synced 2026-08-28 04:46:42 -04:00
Prepare for release v0.3.1
This commit is contained in:
@@ -12,14 +12,13 @@ libmutton is a library for building simple, SSH-synchronized password managers i
|
|||||||
See the [developer guide](https://github.com/rwinkhart/libmutton/blob/main/wiki/developers.md).
|
See the [developer guide](https://github.com/rwinkhart/libmutton/blob/main/wiki/developers.md).
|
||||||
|
|
||||||
# Roadmap
|
# Roadmap
|
||||||
#### Release v0.3.0
|
|
||||||
- [ ] Add refresh/re-encrypt functionality
|
|
||||||
#### Release v0.4.0
|
#### Release v0.4.0
|
||||||
|
- [ ] Swap to native (cascade) encryption (custom)
|
||||||
|
- [ ] Add refresh/re-encrypt functionality
|
||||||
|
#### Release v0.5.0
|
||||||
|
- [ ] Implement "netpin" (quick-unlock) with new encryption
|
||||||
- [ ] Password aging support
|
- [ ] Password aging support
|
||||||
- [ ] Append UNIX timestamp to entry names
|
- [ ] Append UNIX timestamp to entry names
|
||||||
#### Release v0.5.0
|
|
||||||
- [ ] Swap to native (cascade) encryption (custom)
|
|
||||||
- [ ] Implement "netpin" (quick-unlock) with new encryption
|
|
||||||
#### Release v1.0.0
|
#### Release v1.0.0
|
||||||
- [ ] Create packaging scripts (libmuttonserver)
|
- [ ] Create packaging scripts (libmuttonserver)
|
||||||
- [ ] Stable source PKGBUILD
|
- [ ] Stable source PKGBUILD
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
LibmuttonVersion = "0.3.B" // Untagged releases feature a letter suffix corresponding to the eventual release version, e.g "0.2.A" -> "0.2.0", "0.2.B" -> "0.2.1"
|
LibmuttonVersion = "0.3.1" // Untagged releases feature a letter suffix corresponding to the eventual release version, e.g "0.2.A" -> "0.2.0", "0.2.B" -> "0.2.1"
|
||||||
|
|
||||||
FSSpace = "\u259d" // ▝ Space/list separator
|
FSSpace = "\u259d" // ▝ Space/list separator
|
||||||
FSPath = "\u259e" // ▞ Path separator
|
FSPath = "\u259e" // ▞ Path separator
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ func EntryAddPrecheck(targetLocation string) uint8 {
|
|||||||
|
|
||||||
// StringGen generates a random string of a specified length and complexity.
|
// StringGen generates a random string of a specified length and complexity.
|
||||||
// Requires: complexity (minimum percentage of special characters to be returned in the generated string; set to 0 to generate a simple string),
|
// Requires: complexity (minimum percentage of special characters to be returned in the generated string; set to 0 to generate a simple string),
|
||||||
// complexCharsetLevel (0 = safe for filenames, 1 = safe for most password entries, 2 = safe only for well-made password entries)
|
// complexCharsetLevel (1 = safe for filenames, 2 = safe for most password entries, 3 = safe only for well-made password entries)
|
||||||
func StringGen(length int, complexity float64, complexCharsetLevel uint8) string {
|
func StringGen(length int, complexity float64, complexCharsetLevel uint8) string {
|
||||||
var actualSpecialChars int // track the number of special characters in the generated string
|
var actualSpecialChars int // track the number of special characters in the generated string
|
||||||
var minSpecialChars int // track the minimum number of special characters to accept
|
var minSpecialChars int // track the minimum number of special characters to accept
|
||||||
@@ -145,11 +145,11 @@ func StringGen(length int, complexity float64, complexCharsetLevel uint8) string
|
|||||||
if complexity > 0 {
|
if complexity > 0 {
|
||||||
minSpecialChars = int(math.Round(float64(length) * complexity)) // determine minimum number of special characters to accept
|
minSpecialChars = int(math.Round(float64(length) * complexity)) // determine minimum number of special characters to accept
|
||||||
switch complexCharsetLevel {
|
switch complexCharsetLevel {
|
||||||
case 0:
|
|
||||||
extendedCharset = extendedCharsetFiles
|
|
||||||
case 1:
|
case 1:
|
||||||
extendedCharset = extendedCharsetMostPassword + extendedCharsetFiles[:len(extendedCharsetFiles)-9]
|
extendedCharset = extendedCharsetFiles
|
||||||
case 2:
|
case 2:
|
||||||
|
extendedCharset = extendedCharsetMostPassword + extendedCharsetFiles[:len(extendedCharsetFiles)-9]
|
||||||
|
case 3:
|
||||||
extendedCharset = extendedCharsetFiles + extendedCharsetMostPassword + extendedCharsetSpecialPassword
|
extendedCharset = extendedCharsetFiles + extendedCharsetMostPassword + extendedCharsetSpecialPassword
|
||||||
}
|
}
|
||||||
charset += extendedCharset
|
charset += extendedCharset
|
||||||
|
|||||||
@@ -1,3 +1,31 @@
|
|||||||
|
**libmutton v0.3.1**
|
||||||
|
April 21, 2025
|
||||||
|
|
||||||
|
## Features
|
||||||
|
- (da95ede80704e667f75372e2142de4cef1dd42da) Added `EntryAddPrecheck()` utility function for ensuring the target locations for new entries are valid
|
||||||
|
- (17223758b11eae301106f398fe2a8815a04f2d62) (44924737ab0830ad49e90c1d1930b05bba307284) (0f90e8251413af2be73f56d071c14af6c00cdb79) Added initial native Android support
|
||||||
|
- (51bb67f3150e70c2c8e8dc3cc72de5666d7c058a) Split device ID retrieval into dedicated exported function, `GetCurrentDeviceID`
|
||||||
|
- (4ed816cb112686d995b1cb7ae8f5df990117ae4d) Allow more control over string generation to improve generated password compatibility
|
||||||
|
|
||||||
|
## Fixes
|
||||||
|
- (51bb67f3150e70c2c8e8dc3cc72de5666d7c058a) Fixed clients having multiple device IDs after failed registrations
|
||||||
|
- (451d695649c659a510a117254a9311fe621082b1) Fixed inability to add a folder on the server if the folder was already created on a client that failed to sync
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
- Bumps (direct and indirect)
|
||||||
|
- Go: v1.24.0 => v1.24.2
|
||||||
|
- github.com/pkg/sftp: v1.13.7 => v1.13.9
|
||||||
|
- golang.org/x/crypto: v0.34.0 => v0.37.0
|
||||||
|
- golang.org/x/sys: v0.30.0 => v0.32.0
|
||||||
|
- New
|
||||||
|
- Android builds only
|
||||||
|
- golang.design/x/clipboard v0.7.0
|
||||||
|
- golang.org/x/exp/shiny v0.0.0-20250408133849-7e4ce0ab07d0
|
||||||
|
- golang.org/x/image v0.26.0
|
||||||
|
- golang.org/x/mobile v0.0.0-20250408133729-978277e7eaf7
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
**libmutton v0.3.0**
|
**libmutton v0.3.0**
|
||||||
February 22, 2025
|
February 22, 2025
|
||||||
|
|
||||||
@@ -12,7 +40,6 @@ February 22, 2025
|
|||||||
- (2feeeb74d7813dbbb75795d5ccdd817bbcea3602) `core.ParseConfig` now returns errors for proper handling in interactive clients
|
- (2feeeb74d7813dbbb75795d5ccdd817bbcea3602) `core.ParseConfig` now returns errors for proper handling in interactive clients
|
||||||
- (68e3108741fae0aaf316dcf33a5074b0e19a7b4f) `sync.RunJob` can now return lists of synchronized entries for display in interactive clients
|
- (68e3108741fae0aaf316dcf33a5074b0e19a7b4f) `sync.RunJob` can now return lists of synchronized entries for display in interactive clients
|
||||||
|
|
||||||
|
|
||||||
## Fixes
|
## Fixes
|
||||||
- (eb2b349697ede136ea031cf7d82bfb72a5a0dcf9) Deletions are now synchronized before folders to avoid sync failures under unlikely conditions
|
- (eb2b349697ede136ea031cf7d82bfb72a5a0dcf9) Deletions are now synchronized before folders to avoid sync failures under unlikely conditions
|
||||||
- (fc1cd349b8c5468afa3feaf7b5b9042eb4c467e7) Double-space line breaks with Markdown formatting are now preserved when saving an entry
|
- (fc1cd349b8c5468afa3feaf7b5b9042eb4c467e7) Double-space line breaks with Markdown formatting are now preserved when saving an entry
|
||||||
|
|||||||
Reference in New Issue
Block a user