Skip to content

Commit f373405

Browse files
authored
fix: ed25519 verify uses public key, not private (#690)
1 parent 83d2aed commit f373405

File tree

15 files changed

+100
-50
lines changed

15 files changed

+100
-50
lines changed

.github/dependabot.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ updates:
1717
- "@react-native-community/cli-platform-android"
1818
- "@react-native-community/cli-platform-ios"
1919
- "@types/react"
20+
- "chai"
21+
- "@types/chai"
2022
- package-ecosystem: "bun"
2123
target-branch: "0.x"
2224
directory: "/"

.rules

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ Every time you choose to apply a rule(s), explicitly state the rule(s) in the ou
2727
- Use modern C++ features.
2828
- Attempt to reduce the amount of code rather than add more.
2929
- Prefer iteration and modularization over code duplication.
30+
- Do not add comments unless explicitly told to do so.
3031

3132
## TypeScript Best Practices
3233

bun.lock

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
"@react-navigation/native": "6.1.18",
3131
"@react-navigation/native-stack": "6.11.0",
3232
"buffer": "6.0.3",
33-
"chai": "5.2.0",
33+
"chai": "<5.0.0",
3434
"crypto-browserify": "^3.12.0",
3535
"event-target-polyfill": "^0.0.4",
3636
"events": "3.3.0",
@@ -61,7 +61,7 @@
6161
"@react-native/metro-config": "0.76.1",
6262
"@react-native/typescript-config": "0.76.1",
6363
"@tsconfig/react-native": "^3.0.5",
64-
"@types/chai": "5.2.1",
64+
"@types/chai": "<5.0.0",
6565
"@types/react": "18.3.3",
6666
"@types/react-native-vector-icons": "^6.4.18",
6767
"@types/react-test-renderer": "18.3.0",
@@ -82,13 +82,13 @@
8282
},
8383
"devDependencies": {
8484
"@types/jest": "29.5.11",
85-
"@types/node": "22.0.0",
85+
"@types/node": "^22.0.0",
8686
"@types/react": "18.3.3",
8787
"@types/readable-stream": "4.0.18",
8888
"del-cli": "6.0.0",
8989
"jest": "29.7.0",
9090
"nitro-codegen": "0.25.2",
91-
"react-native-builder-bob": "0.40.6",
91+
"react-native-builder-bob": "0.39.1",
9292
"react-native-nitro-modules": "0.25.2",
9393
},
9494
"peerDependencies": {
@@ -106,10 +106,6 @@
106106
"packages": {
107107
"@ampproject/remapping": ["@ampproject/[email protected]", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw=="],
108108

109-
"@ark/schema": ["@ark/[email protected]", "", { "dependencies": { "@ark/util": "0.46.0" } }, "sha512-c2UQdKgP2eqqDArfBqQIJppxJHvNNXuQPeuSPlDML4rjw+f1cu0qAlzOG4b8ujgm9ctIDWwhpyw6gjG5ledIVQ=="],
110-
111-
"@ark/util": ["@ark/[email protected]", "", {}, "sha512-JPy/NGWn/lvf1WmGCPw2VGpBg5utZraE84I7wli18EDF3p3zc/e9WolT35tINeZO3l7C77SjqRJeAUoT0CvMRg=="],
112-
113109
"@babel/code-frame": ["@babel/[email protected]", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.25.9", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" } }, "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ=="],
114110

115111
"@babel/compat-data": ["@babel/[email protected]", "", {}, "sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g=="],
@@ -634,9 +630,7 @@
634630

635631
"@types/babel__traverse": ["@types/[email protected]", "", { "dependencies": { "@babel/types": "^7.20.7" } }, "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg=="],
636632

637-
"@types/chai": ["@types/[email protected]", "", { "dependencies": { "@types/deep-eql": "*" } }, "sha512-iu1JLYmGmITRzUgNiLMZD3WCoFzpYtueuyAgHTXqgwSRAMIlFTnZqG6/xenkpUGRJEzSfklUTI4GNSzks/dc0w=="],
638-
639-
"@types/deep-eql": ["@types/[email protected]", "", {}, "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw=="],
633+
"@types/chai": ["@types/[email protected]", "", {}, "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ=="],
640634

641635
"@types/estree": ["@types/[email protected]", "", {}, "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ=="],
642636

@@ -730,8 +724,6 @@
730724

731725
"argparse": ["[email protected]", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="],
732726

733-
"arktype": ["[email protected]", "", { "dependencies": { "@ark/schema": "0.46.0", "@ark/util": "0.46.0" } }, "sha512-IZCEEXaJ8g+Ijd59WtSYwtjnqXiwM8sWQ5EjGamcto7+HVN9eK0C4p0zDlCuAwWhpqr6fIBkxPuYDl4/Mcj/+Q=="],
734-
735727
"array-buffer-byte-length": ["[email protected]", "", { "dependencies": { "call-bind": "^1.0.5", "is-array-buffer": "^3.0.4" } }, "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg=="],
736728

737729
"array-ify": ["[email protected]", "", {}, "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng=="],
@@ -754,7 +746,7 @@
754746

755747
"asn1.js": ["[email protected]", "", { "dependencies": { "bn.js": "^4.0.0", "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" } }, "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw=="],
756748

757-
"assertion-error": ["assertion-error@2.0.1", "", {}, "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA=="],
749+
"assertion-error": ["assertion-error@1.1.0", "", {}, "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw=="],
758750

759751
"ast-types": ["[email protected]", "", { "dependencies": { "tslib": "^2.0.1" } }, "sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg=="],
760752

@@ -850,15 +842,15 @@
850842

851843
"caniuse-lite": ["[email protected]", "", {}, "sha512-Nmqpru91cuABu/DTCXbM2NSRHzM2uVHfPnhJ/1zEAJx/ILBRVmz3pzH4N7DZqbdG0gWClsCC05Oj0mJ/1AWMbA=="],
852844

853-
"chai": ["chai@5.2.0", "", { "dependencies": { "assertion-error": "^2.0.1", "check-error": "^2.1.1", "deep-eql": "^5.0.1", "loupe": "^3.1.0", "pathval": "^2.0.0" } }, "sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw=="],
845+
"chai": ["chai@4.5.0", "", { "dependencies": { "assertion-error": "^1.1.0", "check-error": "^1.0.3", "deep-eql": "^4.1.3", "get-func-name": "^2.0.2", "loupe": "^2.3.6", "pathval": "^1.1.1", "type-detect": "^4.1.0" } }, "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw=="],
854846

855847
"chalk": ["[email protected]", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="],
856848

857849
"char-regex": ["[email protected]", "", {}, "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw=="],
858850

859851
"chardet": ["[email protected]", "", {}, "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA=="],
860852

861-
"check-error": ["check-error@2.1.1", "", {}, "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw=="],
853+
"check-error": ["check-error@1.0.3", "", { "dependencies": { "get-func-name": "^2.0.2" } }, "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg=="],
862854

863855
"cheerio": ["[email protected]", "", { "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", "domutils": "^3.1.0", "encoding-sniffer": "^0.2.0", "htmlparser2": "^9.1.0", "parse5": "^7.1.2", "parse5-htmlparser2-tree-adapter": "^7.0.0", "parse5-parser-stream": "^7.1.2", "undici": "^6.19.5", "whatwg-mimetype": "^4.0.0" } }, "sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww=="],
864856

@@ -1004,7 +996,7 @@
1004996

1005997
"dedent": ["[email protected]", "", {}, "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA=="],
1006998

1007-
"deep-eql": ["deep-eql@5.0.2", "", {}, "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q=="],
999+
"deep-eql": ["deep-eql@4.1.4", "", { "dependencies": { "type-detect": "^4.0.0" } }, "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg=="],
10081000

10091001
"deep-extend": ["[email protected]", "", {}, "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="],
10101002

@@ -1238,6 +1230,8 @@
12381230

12391231
"get-east-asian-width": ["[email protected]", "", {}, "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA=="],
12401232

1233+
"get-func-name": ["[email protected]", "", {}, "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ=="],
1234+
12411235
"get-intrinsic": ["[email protected]", "", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", "hasown": "^2.0.0" } }, "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ=="],
12421236

12431237
"get-package-type": ["[email protected]", "", {}, "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q=="],
@@ -1602,7 +1596,7 @@
16021596

16031597
"loose-envify": ["[email protected]", "", { "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="],
16041598

1605-
"loupe": ["loupe@3.1.3", "", {}, "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug=="],
1599+
"loupe": ["loupe@2.3.7", "", { "dependencies": { "get-func-name": "^2.0.1" } }, "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA=="],
16061600

16071601
"lru-cache": ["[email protected]", "", {}, "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA=="],
16081602

@@ -1804,7 +1798,7 @@
18041798

18051799
"path-type": ["[email protected]", "", {}, "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg=="],
18061800

1807-
"pathval": ["pathval@2.0.0", "", {}, "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA=="],
1801+
"pathval": ["pathval@1.1.1", "", {}, "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ=="],
18081802

18091803
"pbkdf2": ["[email protected]", "", { "dependencies": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", "ripemd160": "^2.0.1", "safe-buffer": "^5.0.1", "sha.js": "^2.4.8" } }, "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA=="],
18101804

@@ -1886,7 +1880,7 @@
18861880

18871881
"react-native-bouncy-checkbox": ["[email protected]", "", { "dependencies": { "@freakycoder/react-native-bounceable": "^1.0.3" } }, "sha512-hB7YwCGTNoMpTPOPiP+RWyQH35S6vxUbc7IGEW/Rqyp7GonEyhtqtthmxiphneRXnywMh8CZwND7OnvppJZscg=="],
18881882

1889-
"react-native-builder-bob": ["react-native-builder-bob@0.40.6", "", { "dependencies": { "@babel/core": "^7.25.2", "@babel/plugin-transform-strict-mode": "^7.24.7", "@babel/preset-env": "^7.25.2", "@babel/preset-flow": "^7.24.7", "@babel/preset-react": "^7.24.7", "@babel/preset-typescript": "^7.24.7", "arktype": "^2.1.15", "babel-plugin-module-resolver": "^5.0.2", "browserslist": "^4.20.4", "cross-spawn": "^7.0.3", "dedent": "^0.7.0", "del": "^6.1.1", "escape-string-regexp": "^4.0.0", "fs-extra": "^10.1.0", "glob": "^8.0.3", "is-git-dirty": "^2.0.1", "json5": "^2.2.1", "kleur": "^4.1.4", "metro-config": "^0.80.9", "prompts": "^2.4.2", "which": "^2.0.2", "yargs": "^17.5.1" }, "bin": { "bob": "bin/bob" } }, "sha512-SZM1CcDDSI4nMIxcABgwm/TLhzO3BemKsbvujgQM8friYoWJvpP/VpLBSpljHVXzcvtA1PMKRCj68zddZru+hQ=="],
1883+
"react-native-builder-bob": ["react-native-builder-bob@0.39.1", "", { "dependencies": { "@babel/core": "^7.25.2", "@babel/plugin-transform-strict-mode": "^7.24.7", "@babel/preset-env": "^7.25.2", "@babel/preset-flow": "^7.24.7", "@babel/preset-react": "^7.24.7", "@babel/preset-typescript": "^7.24.7", "babel-plugin-module-resolver": "^5.0.2", "browserslist": "^4.20.4", "cross-spawn": "^7.0.3", "dedent": "^0.7.0", "del": "^6.1.1", "escape-string-regexp": "^4.0.0", "fs-extra": "^10.1.0", "glob": "^8.0.3", "is-git-dirty": "^2.0.1", "json5": "^2.2.1", "kleur": "^4.1.4", "metro-config": "^0.80.9", "prompts": "^2.4.2", "which": "^2.0.2", "yargs": "^17.5.1" }, "bin": { "bob": "bin/bob" } }, "sha512-nEG9FB5a2Rxw0251dnlM9QtqvuM2os8avRhYDWDdvsZOnQJhQI4fGV5wF5FypAqHNWPQUNXmvhPUFrPSwiPnAQ=="],
18901884

18911885
"react-native-nitro-modules": ["[email protected]", "", { "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-rL+X0LzB8BXvpdrUE/+oZ5v4qS/1nZIq0M8Uctbvqq2q53sVCHX4995ffT8+lGIJe/f0QcBvvrEeXtBPl86iwQ=="],
18921886

@@ -2130,7 +2124,7 @@
21302124

21312125
"type-check": ["[email protected]", "", { "dependencies": { "prelude-ls": "^1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="],
21322126

2133-
"type-detect": ["type-detect@4.0.8", "", {}, "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g=="],
2127+
"type-detect": ["type-detect@4.1.0", "", {}, "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw=="],
21342128

21352129
"type-fest": ["[email protected]", "", {}, "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA=="],
21362130

@@ -2660,6 +2654,8 @@
26602654

26612655
"@release-it/conventional-changelog/semver": ["[email protected]", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A=="],
26622656

2657+
"@sinonjs/commons/type-detect": ["[email protected]", "", {}, "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g=="],
2658+
26632659
"@ts-morph/common/minimatch": ["[email protected]", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="],
26642660

26652661
"@types/babel__core/@babel/parser": ["@babel/[email protected]", "", { "dependencies": { "@babel/types": "^7.25.4" }, "bin": "./bin/babel-parser.js" }, "sha512-nq+eWrOgdtu3jG5Os4TQP3x3cLA8hR8TvJNjD8vnPa20WGycimcparWnLK4jJhElTK6SDyuJo1weMKO/5LpmLA=="],
786 Bytes
Loading

docs/test_suite_results_ios.png

2.52 KB
Loading

example/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
"@react-navigation/native": "6.1.18",
2828
"@react-navigation/native-stack": "6.11.0",
2929
"buffer": "6.0.3",
30-
"chai": "5.2.0",
30+
"chai": "<5.0.0",
3131
"crypto-browserify": "^3.12.0",
3232
"event-target-polyfill": "^0.0.4",
3333
"events": "3.3.0",
@@ -58,7 +58,7 @@
5858
"@react-native/metro-config": "0.76.1",
5959
"@react-native/typescript-config": "0.76.1",
6060
"@tsconfig/react-native": "^3.0.5",
61-
"@types/chai": "5.2.1",
61+
"@types/chai": "<5.0.0",
6262
"@types/react": "18.3.3",
6363
"@types/react-native-vector-icons": "^6.4.18",
6464
"@types/react-test-renderer": "18.3.0",

example/src/tests/ed25519/ed25519_tests.ts

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,6 @@
11
/* eslint-disable @typescript-eslint/no-unused-expressions */
22
import { Ed, randomBytes, ab2str } from 'react-native-quick-crypto';
33
import { Buffer } from '@craftzdog/react-native-buffer';
4-
// import type {
5-
// // KeyObject,
6-
// // CFRGKeyPairType,
7-
// // GenerateKeyPairCallback,
8-
// GenerateKeyPairOptions,
9-
// // KeyPairKey,
10-
// } from 'react-native-quick-crypto';
114
import { expect } from 'chai';
125
import { test } from '../util';
136

@@ -90,20 +83,39 @@ test(SUITE, 'sign/verify - switched args does not verify', async () => {
9083
});
9184

9285
test(SUITE, 'sign/verify - non-internally generated private key', async () => {
86+
const pub = Buffer.from(
87+
'e106bf015ad54a64022295c7af2c35f9511eb37264a7722a9642eaac6c59a494',
88+
'hex',
89+
);
90+
const priv = Buffer.from(
91+
'5f27e170afc5091c4933d980c5fe86af997b91375115c6ee2c0fe4ea12400ed0',
92+
'hex',
93+
);
94+
95+
const ed2 = new Ed('ed25519', {});
96+
const signature = await ed2.sign(data1.buffer, priv);
97+
const verified = await ed2.verify(signature, data1.buffer, pub);
98+
expect(verified).to.be.true;
99+
});
100+
101+
test(SUITE, 'sign/verify - bad signature', async () => {
93102
let ed1: Ed | null = new Ed('ed25519', {});
94103
await ed1.generateKeyPair();
104+
const pub = ed1.getPublicKey();
95105
const priv = ed1.getPrivateKey();
96106
ed1 = null;
97107

98108
const ed2 = new Ed('ed25519', {});
99109
const signature = await ed2.sign(data1.buffer, priv);
100-
const verified = await ed2.verify(signature, data1.buffer, priv);
101-
expect(verified).to.be.true;
110+
const signature2 = randomBytes(64).buffer;
111+
expect(ab2str(signature2)).not.to.equal(ab2str(signature));
112+
const verified = await ed2.verify(signature2, data1.buffer, pub);
113+
expect(verified).to.be.false;
102114
});
103115

104116
test(
105117
SUITE,
106-
'sign/verify - bad non-internally generated private key',
118+
'sign/verify - bad verify with private key, not public',
107119
async () => {
108120
let ed1: Ed | null = new Ed('ed25519', {});
109121
await ed1.generateKeyPair();
@@ -112,9 +124,7 @@ test(
112124

113125
const ed2 = new Ed('ed25519', {});
114126
const signature = await ed2.sign(data1.buffer, priv);
115-
const signature2 = randomBytes(64).buffer;
116-
expect(ab2str(signature2)).not.to.equal(ab2str(signature));
117-
const verified = await ed2.verify(signature2, data1.buffer, priv);
127+
const verified = await ed2.verify(signature, data1.buffer, priv);
118128
expect(verified).to.be.false;
119129
},
120130
);
@@ -124,10 +134,11 @@ test(SUITE, 'sign/verify - Uint8Arrays', () => {
124134

125135
const ed1 = new Ed('ed25519', {});
126136
ed1.generateKeyPairSync();
137+
const pub = new Uint8Array(ed1.getPublicKey());
127138
const priv = new Uint8Array(ed1.getPrivateKey());
128139

129140
const ed2 = new Ed('ed25519', {});
130141
const signature = new Uint8Array(ed2.signSync(encode(data), priv));
131-
const verified = ed2.verifySync(signature, encode(data), priv);
142+
const verified = ed2.verifySync(signature, encode(data), pub);
132143
expect(verified).to.be.true;
133144
});

example/src/tests/pbkdf2/pbkdf2_tests.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { expect } from 'chai';
44
import { test } from '../util';
55
import { fixtures, type Fixture } from './fixtures';
66

7-
import crypto, { ab2str } from 'react-native-quick-crypto';
7+
import crypto from 'react-native-quick-crypto';
88
import type { BinaryLike, HashAlgorithm } from 'react-native-quick-crypto';
99

1010
type TestFixture = [string, string, number, number, string];
@@ -36,7 +36,7 @@ const SUITE = 'pbkdf2';
3636
function (err, result) {
3737
expect(err).to.be.null;
3838
expect(result).not.to.be.null;
39-
expect(ab2str(result as ArrayBuffer)).to.equal(expected);
39+
expect(result?.toString('hex')).to.equal(expected);
4040
},
4141
);
4242
};
@@ -76,7 +76,7 @@ const SUITE = 'pbkdf2';
7676

7777
test(SUITE, 'handles buffers', () => {
7878
const resultSync = crypto.pbkdf2Sync('password', 'salt', 1, 32);
79-
expect(ab2str(resultSync)).to.equal(
79+
expect(resultSync?.toString('hex')).to.equal(
8080
'0c60c80f961f0e71f3a9b524af6012062fe037a6e0f0eb94fe8fc46bdc637164',
8181
);
8282

@@ -186,7 +186,7 @@ algos.forEach(function (algorithm) {
186186
function (err, result) {
187187
expect(err).to.be.null;
188188
expect(result).not.to.be.null;
189-
expect(ab2str(result as ArrayBuffer)).to.equal(expected);
189+
expect(result?.toString('hex')).to.equal(expected);
190190
},
191191
);
192192
});
@@ -199,7 +199,7 @@ algos.forEach(function (algorithm) {
199199
f.dkLen as number,
200200
algorithm as HashAlgorithm,
201201
);
202-
expect(ab2str(result)).to.equal(expected);
202+
expect(result?.toString('hex')).to.equal(expected);
203203
});
204204
});
205205

example/tsconfig.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@
77
"index.ts",
88
"app.json",
99
"src",
10-
"**.*.ts",
11-
"**.*.tsx",
10+
"./**/*.ts",
11+
"./**/*.tsx",
12+
"../packages/react-native-quick-crypto/src/**/*.ts"
1213
],
1314
"compilerOptions": {
1415
"jsx": "react",

0 commit comments

Comments
 (0)