summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Karlsson <andreas@proxel.se>2014-04-27 18:36:59 +0200
committerSamuel Lidén Borell <samuel@kodafritt.se>2014-04-27 21:41:53 +0200
commitb3c286655132bff53e4abdc7186a1d9ede1aa95d (patch)
tree8500846964eda6d8adb6138fb8a68a9c13e8b1d3
parent168197765abf9111e7d6a528972fc5694a8c43fb (diff)
downloadfribid-b3c286655132bff53e4abdc7186a1d9ede1aa95d.tar.gz
fribid-b3c286655132bff53e4abdc7186a1d9ede1aa95d.tar.bz2
fribid-b3c286655132bff53e4abdc7186a1d9ede1aa95d.zip
Fix file-based BankID enrollment from Nordea
Description from the patch author: "Nordea har nu gått över till BankID, i varje fall för deras e-legitimationer på fil. Jag testade att använda FriBID 1.0.3 för att hämta en ny legitimation och fick en popup med felet: "640 | maxLen". Tydligen så sätter BankID för Nordea två parametrar som andra banker inte gör: minLen och rfc2797cmcoid. Nedan kan ni se alla parametrar de sätter. Jag har valt att hantera maxLen genom att ignorera den då jag inte ser hur en maximal längd för lösenord ger nåågon extra säkerhet eller annan fördel. För rfc2797cmcoid har jag valt att kräva att ifall den skickas med så måste den vara "true", då så vitt jag kan se använder FriBID alltid CMC Oid:ar. Har ni några synpunkter på detta sätt att hantera parametrarna? Med min patch som fixar detta kunde jag beställa en legitmation på fil som jag använde för att logga in på mitt konto på Hoistspar. = Alla anrop till SetParam vid skapande SetParam: keySize 2048 SetParam: subjectDN OID.2.5.4.41=(140427 17.48) ANDREAS KARLSSON - BankID på fil SetParam: keyUsage digitalSignature SetParam: keyUsage nonRepudiation SetParam: maxLen 30 SetParam: minLen 12 SetParam: minChars 4 SetParam: minDigits 1 SetParam: rfc2797cmcoid true SetParam: oneTimePassword Not Applicable Andreas"
-rw-r--r--plugin/plugin.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/plugin/plugin.c b/plugin/plugin.c
index 091a2bd..e283c2c 100644
--- a/plugin/plugin.c
+++ b/plugin/plugin.c
@@ -310,6 +310,16 @@ void regutil_setParam(Plugin *plugin, const char *name, const char *value) {
}
plugin->lastError = BIDERR_OK; // Never return failure
+ } else if (!g_ascii_strcasecmp(name, "rfc2797cmcoid")) {
+ // We always use CMC Oids
+ if (!strcmp(value, "true")) {
+ plugin->lastError = BIDERR_OK;
+ } else {
+ plugin->lastError = RUERR_InvalidParameter;
+ }
+ } else if (!g_ascii_strcasecmp(name, "MaxLen")) {
+ // A low MaxLen does not make anything more secure so ignore it
+ plugin->lastError = BIDERR_OK;
} else if ((intPtr = getIntParamPointer(plugin, name)) != NULL) {
// Integer parameters
errno = 0;