feat: Integrate CIE authentication flow
This commit is contained in:
@@ -11,6 +11,7 @@ target_include_directories(${PROJECT_NAME}_test
|
||||
target_link_libraries(${PROJECT_NAME}_test
|
||||
PRIVATE
|
||||
Drogon::Drogon
|
||||
OpenSSL::Crypto
|
||||
)
|
||||
|
||||
ParseAndAddDrogonTests(${PROJECT_NAME}_test)
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
#include "common/GeoJson.h"
|
||||
#include "common/Crypto.h"
|
||||
#include "common/Http.h"
|
||||
#include "common/Validation.h"
|
||||
#include "repositories/Sql.h"
|
||||
|
||||
@@ -76,6 +77,24 @@ DROGON_TEST(SqlScalarSerializationKeepsTypes)
|
||||
CHECK(json["phone"].isString());
|
||||
}
|
||||
|
||||
DROGON_TEST(CryptoHmacIsDeterministic)
|
||||
{
|
||||
const auto digest = visione::crypto::hmacSha256Hex("secret", "{\"a\":1}");
|
||||
CHECK(digest == "AA9E2E3575F5D7098B6CACCDB4486EA647EFDC3E2CA6A5CEE762FCAFD14E3F14");
|
||||
CHECK(visione::crypto::constantTimeEquals(digest, digest));
|
||||
CHECK(!visione::crypto::constantTimeEquals(digest, "different"));
|
||||
}
|
||||
|
||||
DROGON_TEST(ParseJsonBodyRejectsInvalidPayload)
|
||||
{
|
||||
const auto parsed = visione::http::parseJsonBody("{\"ok\":true}");
|
||||
CHECK(parsed.isObject());
|
||||
CHECK(parsed["ok"].asBool());
|
||||
|
||||
const auto invalid = visione::http::parseJsonBody("{oops");
|
||||
CHECK(invalid.isNull());
|
||||
}
|
||||
|
||||
DROGON_TEST(GeoJsonMatchesPointInsidePolygon)
|
||||
{
|
||||
Json::Value polygon;
|
||||
|
||||
Reference in New Issue
Block a user