diff --git a/tests/testthat/_snaps/key_write.md b/tests/testthat/_snaps/key_write.md new file mode 100644 index 0000000..c511cac --- /dev/null +++ b/tests/testthat/_snaps/key_write.md @@ -0,0 +1,177 @@ +# Display sample key + + Code + write_key(key, NULL) + Output + -----BEGIN PRIVATE KEY----- + MIIJpQIBADASBg4rBgEEAYOoeAWOQwEBAgUABIIJYAC3S+CnQiQksKYiYn9jshHE + kOk0P1com0rokhFaaVxFOaNRdOkSefRnPkxbbytZk20KrWmiWj51Q2bikOUKOsXR + fyPmZo76PfEjUe7DjwRIrLpAX2SFznx8a9wCUEBbTbW2MNl2JaPSSZwFTB6zRaCg + DWBLJZfcXo48FophFFybu5Ippp/EkXrxmjuVJXXEQOLHCLhmRAx7v1T6MCmLc3FK + ZPzck+hVP6P8Vhr4xtc3h0Acdm5sjxdVu8pHseDxLWUTDCJWFvG4jZ3ReDIZrk0J + HaZMBrujNyiRZMTKZafbeHeMJrchzqYwvaNylWrcWXfUZQxUufSCFNdaczdTlhYy + L9pUB/mJgekSMtUGiv62MVLXP1uqcY9EJ8DBlzmhl/vKq+ZRANsHkaL2bIdrMJwZ + J50cKhxUgZ2GYFd5FRbXL9fcjq7gRkwJzu9bG1CDhhM5XHWBVLQJd2wcSVDRBtzp + mxliNjJkkqrIoPSTMvNTq9jbWzjVlXAoS4dsdo7lhDBczmP6YO3MpRrIlDFxQUkj + hJLIoGq5WLeFNak1r1GFWoD2jGFie/aZGHipTifzbp3WanU1kstsb6xBt0PMNeej + Fs4mYrYihb3qNH1jO+cGCYPFwKUrVIMjqwv8JQawfFW2BnxggH0piFWAVo2Ikh9D + V0GqFPYbb2nbB9bBOzQ1iyvYO753ynFgwETzEQcMQdPbVCjIN15ixmS7eRQJHFvi + gzbKORAgIzvqsmzAziUDRYoHKqToxMrTLCunkRm1vWqAlKZ4I2OWTH8lMAYVp6I7 + rL7qL2uAHxIpPIq1gQwYV4UgL1S0PnUFMwQ6ajmzVdhLUK4JXVUUZsAoyw/hNNHK + F4QUeE22g3vlXzoULLmEiVSDay44kgHZUywmdY9ZMRl3QGdXv6uCAaDrYzA7gwpJ + zFJ1odmzzoyJh1GJxMpjdCzWee87dlRFDRW7MPBQlR/jAxnYzmpMku0oS5SCyd+5 + IFqwtoTDZvzHLcqarnHKQj8Wr8qjiiYzMW6jF/GHSQjTQJlEPJbyRK6KEsmhEMjx + TkWodsZBFNPDf79DC0SbOpeKBgtnhfhMYk52LNrCI34JfZV5SdrLxqLjAg5zek2R + YZqsbROZK1IGhfiEeom6qhcqP4VxhkbpJy66p610vP3cmzDiGs4LBcRCh96IbWyi + LuNTu+0EL/zRvgXKaKkWZLGhWCIGvb5GEJ4ILsY5bpfkAbn4m+f3HS7JAqUlvru4 + wcjZe5KhTPaLGPxheNgYxO3rlG6ltYhBe2aMXpb5bHimdj48E/+6T+dAsBZneJVn + PnabFcrAOhVGDFeVIOkTXzmCmW/wLthgOHRhqDQaAoVFqNwBdf5REJ9SS9j0z3a6 + pwnKQRJIg1jZiPNxJ3hDSvJ2miYrAXhiNpSalTT1qEUSMLiXaF26uYoyHydomxX4 + cOSngm1SEWTsslipOFpGRNJFpoAHpvQplUOcSx4nmDE7S7ozTf/4pANpRxzzpNcG + F5bhp6OWOTd2SHASH2LVRMJ2VvQmhrjDAx5sId7gBOF8PPwJpk07Gg/1w+KcJUxs + IS78Azu6V0qFDVVrQKDVUXQ6SwP5DdTlLfSwqrw6i9GWPswEFm6DQHz2PBIEIj57 + esbxpDWwlf2Bg0RSm192NgvMLK/ksV0Gx++ld/gRBnzgI7Q2mrxMivITeff5WNH5 + AQHrlaggp8Z4OvHDiY8wOSrlLB2iql0Hgz0RntEylFIDyysMsr44T6FEB2ZJO4Ps + cq8Ws/1BpLWze1HIGuiGtrdTBJ6ZzHH8HnvHdlJ2DlkSI2gmuQeLUgYbVORSlFZ3 + VcB7glvhRXLBf8DQYNAxwXZbDzm6HSChjm/CNNOnkO1wYqUIKqCDCCVMZqSgYhYG + BzBcQNDmehsLaS/JcaDpaUjMXkoTIET7mmBnDvcXV2E1wFOSdGLCNMFSZqSqnYvm + MU4Rq5NMJvEMsdpDUl18LkCgz47iCYyBYL+ZpQP6luoUW8fnAZTxGL2ECwXyMlj4 + rduIQSozlNMbZ/pZVsCIVqvjbZ+1HUKru9unGawZc0FBRAN6s+eSyrXbU43pfcS8 + XoMzjqFzeCnbFYiXKZhhCN5ix5UUZhI7ElBrmZsGEx3MeHHLRm2gX0gDrCO2gEOF + p+IGp29HM/MRqGqCpPyWOJ+WcPWncb1LsRCyeuPbq68BwjSIPxFqRn7oW6wZK2Ax + NLosGnVoLkMCYbZyuJLYuilWZmq4c4YkMDMoRGLHTwa0FGg0hjQyvivMJ4rFoIpS + HKhDsdogLJCkwABouYNYurAAR6OyBUnZudB6cY2LJ6SiKP88CGs7YPhVxurFVUwn + Jou0mKP7y5OKSXIIT1LQQ9qZgDWprpBWo9GmFIkgw99UdQEByCIbzzarmAj7yjqQ + OS/6cQ3xvD+Dx2P6yAucYJJ6E6VmcJ58tIdEgntrlwV6Id7RzzBjtbiLYn/1Tf9n + oegVhN0iKILoYvlXqyXIgneFwYQMfB1YfIPkYRDxFkJCyPVwD5MheZXij6rrw76D + KBemHSP8AF/HlpTjprFWCRQUiLyxeEvZj5d2MJCmIkJoLLu6fC78Yy0lOQMynDuJ + EApUG9PyfzVTBeLVz2wit+T6C2iHin3hJySUO7aVFhmzxy23wSOaYNkwhU8bJuIa + r/4Xz+j3HeM5TlgEryJ2pVzsXLh7dNbFVmqrJVBnAic4DvwFzWd5TGOaRWBCYBkT + Jo9Vpnc2pE0rHCI2MTUqGi7VLnEosM/kyAuKJbEhZMx8kSjwGyDVS6Ymf7q6JVhA + O9Z8YDVLiVcbj7TpRO28Nm9MBd/AnpV4fz2oIsl3wnPoo+tCer3qvvVBi/NlLC1h + nipADmT8mh+Md4myWmTlHPu7hRcXQ1X2LiQVoXMqkN22m1/Ie1rloKcJZChFoxJB + gGdAwCgHcE03VqoRrhS7ytPHJiorty/5uRechARBUFXDGbysfoSJTgGKZLHMCeDb + c1gwYD+Zxi2SCzDRLY84VAawEaT8zYTaJm12hDV1gnDqhM+ECN5niavlzpvxDPn3 + LIOQxbgwGdr3sYwJugUVb06FujfZA3VnJG+FjP1xzmpJOJyCE9X776l9kqcxPzPA + jwANd+hPhXy/uRGTdf5BTTMjYhTT/wxd5yFgK3O45M5PjmvzbrrMeF4GKEND0OHK + PJCwXdXFhxB+LXign3jeYpbxaIp+f2Wszn40NBRgeDAoMCYGA1UdDgEBAAQc5FtV + U3I6p8F05mM0AM6hQ/RA7l9l3Pmh0ma5bQ== + -----END PRIVATE KEY----- + + -----BEGIN PUBLIC KEY----- + MIIEuTASBg4rBgEEAYOoeAWOQwEBAgUAA4IEoQDhfDz8CaZNOxoP9cPinCVMbCEu + /AM7uldKhQ1Va0Cg1VF0OksD+Q3U5S30sKq8OovRlj7MBBZug0B89jwSBCI+e3rG + 8aQ1sJX9gYNEUptfdjYLzCyv5LFdBsfvpXf4EQZ84CO0Npq8TIryE3n3+VjR+QEB + 65WoIKfGeDrxw4mPMDkq5SwdoqpdB4M9EZ7RMpRSA8srDLK+OE+hRAdmSTuD7HKv + FrP9QaS1s3tRyBrohra3UwSemcxx/B57x3ZSdg5ZEiNoJrkHi1IGG1TkUpRWd1XA + e4Jb4UVywX/A0GDQMcF2Ww85uh0goY5vwjTTp5DtcGKlCCqggwglTGakoGIWBgcw + XEDQ5nobC2kvyXGg6WlIzF5KEyBE+5pgZw73F1dhNcBTknRiwjTBUmakqp2L5jFO + EauTTCbxDLHaQ1JdfC5AoM+O4gmMgWC/maUD+pbqFFvH5wGU8Ri9hAsF8jJY+K3b + iEEqM5TTG2f6WVbAiFar422ftR1Cq7vbpxmsGXNBQUQDerPnksq121ON6X3EvF6D + M46hc3gp2xWIlymYYQjeYseVFGYSOxJQa5mbBhMdzHhxy0ZtoF9IA6wjtoBDhafi + BqdvRzPzEahqgqT8ljiflnD1p3G9S7EQsnrj26uvAcI0iD8RakZ+6FusGStgMTS6 + LBp1aC5DAmG2criS2LopVmZquHOGJDAzKERix08GtBRoNIY0Mr4rzCeKxaCKUhyo + Q7HaICyQpMAAaLmDWLqwAEejsgVJ2bnQenGNiyekoij/PAhrO2D4VcbqxVVMJyaL + tJij+8uTiklyCE9S0EPamYA1qa6QVqPRphSJIMPfVHUBAcgiG882q5gI+8o6kDkv + +nEN8bw/g8dj+sgLnGCSehOlZnCefLSHRIJ7a5cFeiHe0c8wY7W4i2J/9U3/Z6Ho + FYTdIiiC6GL5V6slyIJ3hcGEDHwdWHyD5GEQ8RZCQsj1cA+TIXmV4o+q68O+gygX + ph0j/ABfx5aU46axVgkUFIi8sXhL2Y+XdjCQpiJCaCy7unwu/GMtJTkDMpw7iRAK + VBvT8n81UwXi1c9sIrfk+gtoh4p94ScklDu2lRYZs8ctt8EjmmDZMIVPGybiGq/+ + F8/o9x3jOU5YBK8idqVc7Fy4e3TWxVZqqyVQZwInOA78Bc1neUxjmkVgQmAZEyaP + VaZ3NqRNKxwiNjE1Khou1S5xKLDP5MgLiiWxIWTMfJEo8Bsg1UumJn+6uiVYQDvW + fGA1S4lXG4+06UTtvDZvTAXfwJ6VeH89qCLJd8Jz6KPrQnq96r71QYvzZSwtYZ4q + QA5k/JofjHeJslpk5Rz7u4UXF0NV9i4kFaFzKpDdtptfyHta5aCnCWQoRaMSQYBn + QMAoB3BNN1aqEa4Uu8rTxyYqK7cv+bkXnIQEQVBVwxm8rH6EiU4BimSxzAng23NY + MGA/mcYtkgsw0S2POFQGsBGk/M2E2iZtdoQ1dYJw6oTPhAjeZ4mr5c6b8Qz59yyD + kMW4MBna97GMCboFFW9Ohbo32QN1ZyRvhYz9cc5qSTicghPV+++pfZKnMT8zwI8A + DXfoT4V8v7kRk3X+QQ== + -----END PUBLIC KEY----- + Code + write_key(key$private, NULL) + Output + -----BEGIN PRIVATE KEY----- + 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 + U3I6p8F05mM0AM6hQ/RA7l9l3Pmh0ma5bQ== + -----END PRIVATE KEY----- + Code + write_key(key$public, NULL) + Output + -----BEGIN PUBLIC KEY----- + MIIEuTASBg4rBgEEAYOoeAWOQwEBAgUAA4IEoQDhfDz8CaZNOxoP9cPinCVMbCEu + /AM7uldKhQ1Va0Cg1VF0OksD+Q3U5S30sKq8OovRlj7MBBZug0B89jwSBCI+e3rG + 8aQ1sJX9gYNEUptfdjYLzCyv5LFdBsfvpXf4EQZ84CO0Npq8TIryE3n3+VjR+QEB + 65WoIKfGeDrxw4mPMDkq5SwdoqpdB4M9EZ7RMpRSA8srDLK+OE+hRAdmSTuD7HKv + FrP9QaS1s3tRyBrohra3UwSemcxx/B57x3ZSdg5ZEiNoJrkHi1IGG1TkUpRWd1XA + e4Jb4UVywX/A0GDQMcF2Ww85uh0goY5vwjTTp5DtcGKlCCqggwglTGakoGIWBgcw + XEDQ5nobC2kvyXGg6WlIzF5KEyBE+5pgZw73F1dhNcBTknRiwjTBUmakqp2L5jFO + EauTTCbxDLHaQ1JdfC5AoM+O4gmMgWC/maUD+pbqFFvH5wGU8Ri9hAsF8jJY+K3b + iEEqM5TTG2f6WVbAiFar422ftR1Cq7vbpxmsGXNBQUQDerPnksq121ON6X3EvF6D + M46hc3gp2xWIlymYYQjeYseVFGYSOxJQa5mbBhMdzHhxy0ZtoF9IA6wjtoBDhafi + BqdvRzPzEahqgqT8ljiflnD1p3G9S7EQsnrj26uvAcI0iD8RakZ+6FusGStgMTS6 + LBp1aC5DAmG2criS2LopVmZquHOGJDAzKERix08GtBRoNIY0Mr4rzCeKxaCKUhyo + Q7HaICyQpMAAaLmDWLqwAEejsgVJ2bnQenGNiyekoij/PAhrO2D4VcbqxVVMJyaL + tJij+8uTiklyCE9S0EPamYA1qa6QVqPRphSJIMPfVHUBAcgiG882q5gI+8o6kDkv + +nEN8bw/g8dj+sgLnGCSehOlZnCefLSHRIJ7a5cFeiHe0c8wY7W4i2J/9U3/Z6Ho + FYTdIiiC6GL5V6slyIJ3hcGEDHwdWHyD5GEQ8RZCQsj1cA+TIXmV4o+q68O+gygX + ph0j/ABfx5aU46axVgkUFIi8sXhL2Y+XdjCQpiJCaCy7unwu/GMtJTkDMpw7iRAK + VBvT8n81UwXi1c9sIrfk+gtoh4p94ScklDu2lRYZs8ctt8EjmmDZMIVPGybiGq/+ + F8/o9x3jOU5YBK8idqVc7Fy4e3TWxVZqqyVQZwInOA78Bc1neUxjmkVgQmAZEyaP + VaZ3NqRNKxwiNjE1Khou1S5xKLDP5MgLiiWxIWTMfJEo8Bsg1UumJn+6uiVYQDvW + fGA1S4lXG4+06UTtvDZvTAXfwJ6VeH89qCLJd8Jz6KPrQnq96r71QYvzZSwtYZ4q + QA5k/JofjHeJslpk5Rz7u4UXF0NV9i4kFaFzKpDdtptfyHta5aCnCWQoRaMSQYBn + QMAoB3BNN1aqEa4Uu8rTxyYqK7cv+bkXnIQEQVBVwxm8rH6EiU4BimSxzAng23NY + MGA/mcYtkgsw0S2POFQGsBGk/M2E2iZtdoQ1dYJw6oTPhAjeZ4mr5c6b8Qz59yyD + kMW4MBna97GMCboFFW9Ohbo32QN1ZyRvhYz9cc5qSTicghPV+++pfZKnMT8zwI8A + DXfoT4V8v7kRk3X+QQ== + -----END PUBLIC KEY----- + diff --git a/tests/testthat/test-decap_kyber.R b/tests/testthat/test-decap_kyber.R index ac74a03..d3b13d5 100644 --- a/tests/testthat/test-decap_kyber.R +++ b/tests/testthat/test-decap_kyber.R @@ -72,6 +72,7 @@ test_that("kyber-x decapsulation fails on wrong parameter", { # Bad key expect_error(decap_kyber(ss$encapsulation, "not_a_key")) + # wrong family manipulated_key <- key attr(manipulated_key$private, "algorithm") <- "1.3.6.1.4.1.54392.5.1859.0" expect_error(decap_kyber(ss$encapsulation, manipulated_key$private)) @@ -79,6 +80,11 @@ test_that("kyber-x decapsulation fails on wrong parameter", { invalid_key_algo <- keygen_dilithium() expect_error(decap_kyber(ss$encapsulation, invalid_key_algo$private)) # invalid algorithm + # undefined algorithm, on the right 'family' + manipulated_key <- key + attr(manipulated_key$private, "algorithm") <- "1.3.6.1.4.1.54392.5.1859.1.1.99" + expect_error(decap_kyber(ss$encapsulation, manipulated_key$private)) + # Bad encapsulation bad_encapsulation <- as.integer(runif(768, 0, 256)) # wrong type, right size expect_error(decap_kyber(bad_encapsulation, key$private)) diff --git a/tests/testthat/test-encap_kyber.R b/tests/testthat/test-encap_kyber.R index 1478d5c..8debde2 100644 --- a/tests/testthat/test-encap_kyber.R +++ b/tests/testthat/test-encap_kyber.R @@ -40,6 +40,11 @@ test_that("kyber-x encapsulation fails on wrong parameter", { attr(manipulated_key$public, "algorithm") <- "1.3.6.1.4.1.54392.5.1859.0" expect_error(encap_kyber(manipulated_key$public)) + # undefined algorithm, on the right 'family' + manipulated_key <- key + attr(manipulated_key$public, "algorithm") <- "1.3.6.1.4.1.54392.5.1859.1.1.99" + expect_error(encap_kyber(manipulated_key$public)) + invalid_key_algo <- keygen_dilithium() expect_error(encap_kyber(invalid_key_algo$public)) # invalid algorithm }) diff --git a/tests/testthat/test-key_write.R b/tests/testthat/test-key_write.R index a4851bc..2fbb923 100644 --- a/tests/testthat/test-key_write.R +++ b/tests/testthat/test-key_write.R @@ -126,3 +126,15 @@ test_that("Write Sphincs+ key-pair", { expect_error(write_key("not_a_key", path)) expect_error(write_key(key, "not_a_path")) }) + +test_that("Display sample key", { + + key <- readRDS(test_path("testdata", "key")) + + expect_snapshot({ + write_key(key, NULL) + write_key(key$private, NULL) + write_key(key$public, NULL) + }) + +}) diff --git a/tests/testthat/test-sign_dillitium.R b/tests/testthat/test-sign_dillitium.R index 5f929b8..c700c80 100644 --- a/tests/testthat/test-sign_dillitium.R +++ b/tests/testthat/test-sign_dillitium.R @@ -88,6 +88,6 @@ test_that("Dilithium digital signature fails on wrong parameters", { small_key <- key$private[1:25] class(small_key) <- "pqcrypto_private_key" - attr(small_key, "algorithm") <- "dilithium" + attr(small_key, "algorithm") <- "1.3.6.1.4.1.54392.5.1859.1.2.1" expect_error(sign_dilithium(small_key, "text_message")) # c++ error }) diff --git a/tests/testthat/test-sign_sphincs.R b/tests/testthat/test-sign_sphincs.R index ce3b82f..d7035df 100644 --- a/tests/testthat/test-sign_sphincs.R +++ b/tests/testthat/test-sign_sphincs.R @@ -312,6 +312,6 @@ test_that("Sphincs+ digital signature fails on wrong parameters", { small_key <- key$private[1:25] class(small_key) <- "pqcrypto_private_key" - attr(small_key, "algorithm") <- "sphincs+" + attr(small_key, "algorithm") <- "1.3.6.1.4.1.54392.5.1859.1.3.11" expect_error(sign_sphincs(small_key, "text_message")) # wrong key size }) diff --git a/tests/testthat/test-verify_dilithium.R b/tests/testthat/test-verify_dilithium.R index 6616246..cd03d76 100644 --- a/tests/testthat/test-verify_dilithium.R +++ b/tests/testthat/test-verify_dilithium.R @@ -72,4 +72,10 @@ test_that("Digital signatures verification fails with bad parameters", { key <- keygen_kyber() expect_error(verify_dilithium(important_message, signature, key$public)) # bad key algorithm + + key <- keygen_sphincs() + expect_error(verify_dilithium(important_message, signature, key$public)) # bad key algorithm + + key <- keygen_dilithium() + expect_error(verify_dilithium(important_message, signature, key$public)) # mismatching key }) diff --git a/tests/testthat/test-verify_sphincs.R b/tests/testthat/test-verify_sphincs.R index 35c9330..12ea02c 100644 --- a/tests/testthat/test-verify_sphincs.R +++ b/tests/testthat/test-verify_sphincs.R @@ -246,4 +246,10 @@ test_that("Sphincs+ digital signatures verification fails with bad parameters", key <- keygen_dilithium() expect_error(verify_sphincs(important_message, signature, key$public)) # bad key algorithm + key <- keygen_kyber() + expect_error(verify_sphincs(important_message, signature, key$public)) # bad key algorithm + + key <- keygen_sphincs() + expect_error(verify_sphincs(important_message, signature, key$public)) # mismatching key + }) diff --git a/tests/testthat/testdata/key b/tests/testthat/testdata/key new file mode 100644 index 0000000..9c4bfac Binary files /dev/null and b/tests/testthat/testdata/key differ