diff --git a/manifest.dhall b/manifest.dhall
index 0a14cb09c0294299c7f2a62f960c7b84f6e0c141..c099787369770ce25b911fefce1697d9a8559f32 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -299,6 +299,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "optics" "0.4.2"
     , callHackage "pandoc" "2.19.2"
     , callHackage "parallel" "3.2.2.0"
+    , callHackage "password-types" "1.0.0.0"
     , callHackage "pcg-random" "0.1.3.7"
     , callHackage "pcre2" "2.2.1"
     , callHackage "persistent" "2.14.3.0"
diff --git a/overlay.nix b/overlay.nix
index 5c470b78f592b604b5b7acc2ca7e2601e42a3188..19d72014dcd9a64f3cb67bb86d44703ae56a1500 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -353,6 +353,8 @@ final: prev: with pkgs.haskell.lib; {
 
     parallel = prev.callPackage (./pkgs/parallel.nix) { };
 
+    password-types = prev.callPackage (./pkgs/password-types.nix) { };
+
     pcg-random = prev.callPackage (./pkgs/pcg-random.nix) { };
 
     pcre2 = prev.callPackage (./pkgs/pcre2.nix) { };
diff --git a/pkgs/password-types.nix b/pkgs/password-types.nix
new file mode 100644
index 0000000000000000000000000000000000000000..c53387aa7b706bf5229616553da1fe42b766c82d
--- /dev/null
+++ b/pkgs/password-types.nix
@@ -0,0 +1,24 @@
+{ mkDerivation, base, base-compat, bytestring, Cabal, cabal-doctest
+, doctest, lib, memory, QuickCheck, quickcheck-instances, tasty
+, tasty-quickcheck, template-haskell, text
+}:
+mkDerivation {
+  pname = "password-types";
+  version = "1.0.0.0";
+  sha256 = "6551d60c61c90509592e32ee021a927539d5f391cdfd94b76ca51add05c60a24";
+  revision = "3";
+  editedCabalFile = "0i6djm9zsb95qdan0vr9shilhmzjxqsqrjy9v16hcaph49wnw7pr";
+  setupHaskellDepends = [ base Cabal cabal-doctest ];
+  libraryHaskellDepends = [ base bytestring memory text ];
+  testHaskellDepends = [
+    base base-compat doctest QuickCheck quickcheck-instances tasty
+    tasty-quickcheck template-haskell text
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/cdepillabout/password/tree/master/password-types#readme";
+  description = "Types for handling passwords";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file