Compare commits

..

No commits in common. "82f2c6c5fbc2bec95a95d304ec6c8d797597e2b8" and "b9d52070f199728db617ac7443eb11ee746f5aeb" have entirely different histories.

8 changed files with 54 additions and 58 deletions

View File

@ -1,10 +1,5 @@
# Changelog for passman # Changelog for passman
## 0.3.1.1
- updated documentation to on longer mention GitHub
- updated resolver to LTS 20.19
## 0.3.1 ## 0.3.1
- set maximum version of transformers package - set maximum version of transformers package

View File

@ -1,6 +1,6 @@
# passman # passman
Copyright (C) 2018-2023 Jonathan Lamothe Copyright (C) 2018-2021 Jonathan Lamothe
<jonathan@jlamothe.net> <jonathan@jlamothe.net>
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
@ -41,11 +41,16 @@ for instructions on installing Haskell Stack. Once you have done
this, you can simply enter the command `stack install passman` in the this, you can simply enter the command `stack install passman` in the
terminal to install passman. terminal to install passman.
## Codeberg ## GitHub
The most recent version of passman can be found on Codeberg at The most recent version of passman can be found on GitHub at
<https://codeberg.org/jlamothe/passman>. <https://github.com/jlamothe/passman>.
## Pull Requests ## Pull Requests
Pull requests are welcome, but should be made to the `dev` branch. Pull requests are welcome, but should be made to the `dev` branch.
## Donations
Bitcoin donations are accepted (but not required) at:
18hqEsXCinyauDp6smPUEVuscjDdasTKvr

View File

@ -26,7 +26,7 @@ module Types (Status (Status), gen, dbPath, masterPass, database) where
import Lens.Micro (set, (^.)) import Lens.Micro (set, (^.))
import Lens.Micro.TH (makeLenses) import Lens.Micro.TH (makeLenses)
import System.Random (RandomGen (genWord64, split), StdGen) import System.Random (RandomGen (next, split), StdGen)
import Password import Password
@ -40,8 +40,8 @@ data Status = Status
makeLenses ''Status makeLenses ''Status
instance RandomGen Status where instance RandomGen Status where
genWord64 s = (x, s') where next s = (x, s') where
(x, g') = genWord64 g (x, g') = next g
s' = set gen g' s s' = set gen g' s
g = s^.gen g = s^.gen
split s = (s1, s2) where split s = (s1, s2) where

View File

@ -1,11 +1,10 @@
name: passman name: passman
version: 0.3.1.1 version: 0.3.1
license: LGPL-3.0-or-later github: "jlamothe/passman"
license: LGPL-3
author: "Jonathan Lamothe" author: "Jonathan Lamothe"
maintainer: "jonathan@jlamothe.net" maintainer: "jonathan@jlamothe.net"
copyright: "(C) 2018-2023 Jonathan Lamothe" copyright: "(C) 2018-2021 Jonathan Lamothe"
homepage: https://codeberg.org/jlamothe/passman
bug-reports: https://codeberg.org/jlamothe/passman/issues
extra-source-files: extra-source-files:
- README.md - README.md
@ -18,16 +17,16 @@ category: Security
# To avoid duplicated efforts in documentation and dealing with the # To avoid duplicated efforts in documentation and dealing with the
# complications of embedding Haddock markup inside cabal files, it is # complications of embedding Haddock markup inside cabal files, it is
# common to point users to the README.md file. # common to point users to the README.md file.
description: a simple password manager - see README.md for details description: Please see the README on GitHub at <https://github.com/jlamothe/passman#readme>
dependencies: dependencies:
- base >= 4.7 && < 5 - base >= 4.7 && < 5
- aeson >= 2.0.3.0 && < 2.1 - aeson >= 1.5.6.0 && < 1.6
- bytestring >= 0.11.4.0 && < 0.12 - bytestring >= 0.10.12.0 && < 0.11
- containers >= 0.6.2.1 && < 0.7 - containers >= 0.6.2.1 && < 0.7
- microlens >= 0.4.11.2 && < 0.5 - microlens >= 0.4.11.2 && < 0.5
- microlens-th >= 0.4.3.6 && < 0.5 - microlens-th >= 0.4.3.6 && < 0.5
- random >=1.2.1.1 && < 1.3 - random >=1.1 && < 1.2
ghc-options: ghc-options:
- -Wall - -Wall
@ -35,8 +34,8 @@ ghc-options:
library: library:
source-dirs: src source-dirs: src
dependencies: dependencies:
- base16-bytestring >= 1.0.2.0 && < 1.1 - base16-bytestring >= 0.1.1.7 && < 0.2
- base64-bytestring >= 1.2.1.0 && < 1.3 - base64-bytestring >= 1.1.0.0 && < 1.2
- SHA >= 1.6.4.4 && < 1.7 - SHA >= 1.6.4.4 && < 1.7
- text >= 1.2.4.1 && < 1.3 - text >= 1.2.4.1 && < 1.3

View File

@ -1,49 +1,51 @@
cabal-version: 2.2 cabal-version: 1.12
-- This file has been generated from package.yaml by hpack version 0.35.1. -- This file has been generated from package.yaml by hpack version 0.33.0.
-- --
-- see: https://github.com/sol/hpack -- see: https://github.com/sol/hpack
-- --
-- hash: da6c3020622e5c4c06814752b3f3334e52925005f8b3be9516efb9fd1976af9c -- hash: e3bd0ca2b360b025666f4503e3115caaaed34c7719487d90ae4d5eb58f9621e9
name: passman name: passman
version: 0.3.1.1 version: 0.3.1
synopsis: a simple password manager synopsis: a simple password manager
description: a simple password manager - see README.md for details description: Please see the README on GitHub at <https://github.com/jlamothe/passman#readme>
category: Security category: Security
homepage: https://codeberg.org/jlamothe/passman homepage: https://github.com/jlamothe/passman#readme
bug-reports: https://codeberg.org/jlamothe/passman/issues bug-reports: https://github.com/jlamothe/passman/issues
author: Jonathan Lamothe author: Jonathan Lamothe
maintainer: jonathan@jlamothe.net maintainer: jonathan@jlamothe.net
copyright: (C) 2018-2023 Jonathan Lamothe copyright: (C) 2018-2021 Jonathan Lamothe
license: LGPL-3.0-or-later license: LGPL-3
license-file: LICENSE license-file: LICENSE
build-type: Simple build-type: Simple
extra-source-files: extra-source-files:
README.md README.md
ChangeLog.md ChangeLog.md
source-repository head
type: git
location: https://github.com/jlamothe/passman
library library
exposed-modules: exposed-modules:
Password Password
other-modules: other-modules:
Paths_passman Paths_passman
autogen-modules:
Paths_passman
hs-source-dirs: hs-source-dirs:
src src
ghc-options: -Wall ghc-options: -Wall
build-depends: build-depends:
SHA >=1.6.4.4 && <1.7 SHA >=1.6.4.4 && <1.7
, aeson >=2.0.3.0 && <2.1 , aeson >=1.5.6.0 && <1.6
, base >=4.7 && <5 , base >=4.7 && <5
, base16-bytestring >=1.0.2.0 && <1.1 , base16-bytestring >=0.1.1.7 && <0.2
, base64-bytestring >=1.2.1.0 && <1.3 , base64-bytestring >=1.1.0.0 && <1.2
, bytestring >=0.11.4.0 && <0.12 , bytestring >=0.10.12.0 && <0.11
, containers >=0.6.2.1 && <0.7 , containers >=0.6.2.1 && <0.7
, microlens >=0.4.11.2 && <0.5 , microlens >=0.4.11.2 && <0.5
, microlens-th >=0.4.3.6 && <0.5 , microlens-th >=0.4.3.6 && <0.5
, random >=1.2.1.1 && <1.3 , random >=1.1 && <1.2
, text >=1.2.4.1 && <1.3 , text >=1.2.4.1 && <1.3
default-language: Haskell2010 default-language: Haskell2010
@ -54,22 +56,20 @@ executable passman
UI UI
Util Util
Paths_passman Paths_passman
autogen-modules:
Paths_passman
hs-source-dirs: hs-source-dirs:
app app
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
build-depends: build-depends:
HCL ==1.8.* HCL >=1.8 && <1.9
, aeson >=2.0.3.0 && <2.1 , aeson >=1.5.6.0 && <1.6
, base >=4.7 && <5 , base >=4.7 && <5
, bytestring >=0.11.4.0 && <0.12 , bytestring >=0.10.12.0 && <0.11
, containers >=0.6.2.1 && <0.7 , containers >=0.6.2.1 && <0.7
, easy-file >=0.2.2 && <0.3 , easy-file >=0.2.2 && <0.3
, microlens >=0.4.11.2 && <0.5 , microlens >=0.4.11.2 && <0.5
, microlens-th >=0.4.3.6 && <0.5 , microlens-th >=0.4.3.6 && <0.5
, passman , passman
, random >=1.2.1.1 && <1.3 , random >=1.1 && <1.2
, transformers >=0.5.6.2 && <0.6 , transformers >=0.5.6.2 && <0.6
default-language: Haskell2010 default-language: Haskell2010
@ -92,19 +92,17 @@ test-suite passman-test
Spec.ValidatePWDatabase Spec.ValidatePWDatabase
Spec.ValidatePWPolicy Spec.ValidatePWPolicy
Paths_passman Paths_passman
autogen-modules:
Paths_passman
hs-source-dirs: hs-source-dirs:
test test
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
build-depends: build-depends:
HUnit HUnit
, aeson >=2.0.3.0 && <2.1 , aeson >=1.5.6.0 && <1.6
, base >=4.7 && <5 , base >=4.7 && <5
, bytestring >=0.11.4.0 && <0.12 , bytestring >=0.10.12.0 && <0.11
, containers >=0.6.2.1 && <0.7 , containers >=0.6.2.1 && <0.7
, microlens >=0.4.11.2 && <0.5 , microlens >=0.4.11.2 && <0.5
, microlens-th >=0.4.3.6 && <0.5 , microlens-th >=0.4.3.6 && <0.5
, passman , passman
, random >=1.2.1.1 && <1.3 , random >=1.1 && <1.2
default-language: Haskell2010 default-language: Haskell2010

View File

@ -63,7 +63,6 @@ import qualified Data.ByteString.Base16.Lazy as B16
import qualified Data.ByteString.Base64.Lazy as B64 import qualified Data.ByteString.Base64.Lazy as B64
import Data.Char (isUpper, isLower, isDigit, isAlphaNum, toLower) import Data.Char (isUpper, isLower, isDigit, isAlphaNum, toLower)
import Data.Digest.Pure.SHA import Data.Digest.Pure.SHA
import Data.Either (fromRight)
import qualified Data.Map as M import qualified Data.Map as M
import Data.Maybe (fromMaybe) import Data.Maybe (fromMaybe)
import qualified Data.Text as T import qualified Data.Text as T
@ -342,7 +341,7 @@ mkSeed :: String -> PWData ->B.ByteString
mkSeed pw d = toUTF8 pw `B.append` (d^.pwSalt.to runPWSalt) mkSeed pw d = toUTF8 pw `B.append` (d^.pwSalt.to runPWSalt)
mkHash :: B.ByteString -> B.ByteString mkHash :: B.ByteString -> B.ByteString
mkHash = fromRight "" . B16.decode . toUTF8 . show . sha256 mkHash = fst . B16.decode . toUTF8 . show . sha256
nextPolicy :: Char -> PWPolicy -> PWPolicy nextPolicy :: Char -> PWPolicy -> PWPolicy
nextPolicy x p = over pwLength pred $ nextPolicy x p = over pwLength pred $

View File

@ -17,7 +17,7 @@
# #
# resolver: ./custom-snapshot.yaml # resolver: ./custom-snapshot.yaml
# resolver: https://example.com/snapshots/2018-01-01.yaml # resolver: https://example.com/snapshots/2018-01-01.yaml
resolver: lts-20.19 resolver: lts-17.10
# User packages to be built. # User packages to be built.
# Various formats can be used as shown in the example below. # Various formats can be used as shown in the example below.

View File

@ -7,13 +7,13 @@ packages:
- completed: - completed:
hackage: HCL-1.8@sha256:39ec0da0cd6157f20c395e1b0df474df45efb0088afdaab20bb9dfb3662baf7c,1726 hackage: HCL-1.8@sha256:39ec0da0cd6157f20c395e1b0df474df45efb0088afdaab20bb9dfb3662baf7c,1726
pantry-tree: pantry-tree:
sha256: 5c93c5184dc378de5ecf235aa1a60dc24163ab7e0efad19c8f3bbc94354cf2b8
size: 1223 size: 1223
sha256: 5c93c5184dc378de5ecf235aa1a60dc24163ab7e0efad19c8f3bbc94354cf2b8
original: original:
hackage: HCL-1.8@sha256:39ec0da0cd6157f20c395e1b0df474df45efb0088afdaab20bb9dfb3662baf7c,1726 hackage: HCL-1.8@sha256:39ec0da0cd6157f20c395e1b0df474df45efb0088afdaab20bb9dfb3662baf7c,1726
snapshots: snapshots:
- completed: - completed:
sha256: 42f77c84b34f68c30c2cd0bf8c349f617a0f428264362426290847a6a2019b64 size: 567241
size: 649618 url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/17/10.yaml
url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/20/19.yaml sha256: 321b3b9f0c7f76994b39e0dabafdc76478274b4ff74cc5e43d410897a335ad3b
original: lts-20.19 original: lts-17.10