ExBankID.PayloadHelpers (ex_bank_id v0.2.2) View Source
Checkers for Payload options
https://www.bankid.com/assets/bankid/rp/bankid-relying-party-guidelines-v3.4.pdf
Link to this section Summary
Functions
Returns {:ok, ip_address} or {:error, reason} for IP address validity
Returns {:ok, personal_number}, {:ok, nil} or {:error, reason} for personal number
Returns
Returns
Returns true when value is an oid
Link to this section Functions
Returns {:ok, ip_address} or {:error, reason} for IP address validity
Examples
iex> ExBankID.PayloadHelpers.check_ip_address("1.1.1.1")
{:ok, "1.1.1.1"}
iex> ExBankID.PayloadHelpers.check_ip_address("345.0.0.0")
{:error, "Invalid ip address: 345.0.0.0"}
Returns {:ok, personal_number}, {:ok, nil} or {:error, reason} for personal number
Examples
iex> ExBankID.PayloadHelpers.check_personal_number("190000000000")
{:ok, "190000000000"}
iex> ExBankID.PayloadHelpers.check_personal_number("42")
{:error, "Invalid personal number: 42"}
iex> ExBankID.PayloadHelpers.check_personal_number(nil)
{:ok, nil}
Returns:
- when requirement is omitted
- when all requirement's keys are valid
- when requirement is anything besides a map or nil
Examples
iex> ExBankID.PayloadHelpers.check_requirement(nil)
{:ok, nil}
iex> ExBankID.PayloadHelpers.check_requirement(%{allowFingerprint: :true, cardReader: "class1"})
{:ok, %{allowFingerprint: :true, cardReader: "class1"}}
iex> ExBankID.PayloadHelpers.check_requirement(%{tokenStartRequired: :false, notRealRequirement: "fails"})
{:error, "Invalid requirement"}
iex> ExBankID.PayloadHelpers.check_requirement("something")
{:error, "Invalid requirement"}
Returns
- when autoStartTokenRequired is a boolean
- when cardReader is "class1" or "class2"
- when certificatePolicies is an empty list
- when certificatePolicies is a list of oid's
- when issuerCn is an empty list
- when issuerCn is a list of strings
- when tokenStartRequired is a boolean
- when key, value is anything else besides above permitted
Examples
iex> ExBankID.PayloadHelpers.check_requirement(:autoStartTokenRequired, :false)
{:ok, nil}
iex> ExBankID.PayloadHelpers.check_requirement(:autoStartTokenRequired, "true")
{:error, "Invalid requirement"}
iex> ExBankID.PayloadHelpers.check_requirement(:cardReader, "class1")
{:ok, nil}
iex> ExBankID.PayloadHelpers.check_requirement(:cardReader, "class3")
{:error, "Invalid requirement"}
iex> ExBankID.PayloadHelpers.check_requirement(:certificatePolicies, [])
{:error, "Invalid requirement"}
iex> ExBankID.PayloadHelpers.check_requirement(:certificatePolicies, ["1.2.752.78.*", "1.2.752.78.1.5"])
{:ok, nil}
iex> ExBankID.PayloadHelpers.check_requirement(:certificatePolicies, ["not an oid"])
{:error, "Invalid requirement"}
iex> ExBankID.PayloadHelpers.check_requirement(:certificatePolicies, [])
{:error, "Invalid requirement"}
iex> ExBankID.PayloadHelpers.check_requirement(:issuerCn, ["Nordea CA for Smartcard users 12", "Nordea Test CA for Softcert users 13"])
{:ok, nil}
iex> ExBankID.PayloadHelpers.check_requirement(:issuerCn, "Nordea Test CA for Softcert users 13")
{:error, "Invalid requirement"}
iex> ExBankID.PayloadHelpers.check_requirement(:tokenStartRequired, :false)
{:ok, nil}
iex> ExBankID.PayloadHelpers.check_requirement(:tokenStartRequired, "true")
{:error, "Invalid requirement"}
iex> ExBankID.PayloadHelpers.check_requirement(:foo, "bar")
{:error, "Invalid requirement"}
Returns true when value is an oid
One wildcard "" is allowed from position 5 and forward ie. 1.2.752.78.
Examples
iex> ExBankID.PayloadHelpers.oid?("1.2.752.78.1.1")
true
iex> ExBankID.PayloadHelpers.oid?("1.2.752.78.1.2")
true
iex> ExBankID.PayloadHelpers.oid?("1.2.752.78.1.5")
true
iex> ExBankID.PayloadHelpers.oid?("1.2.752.71.1.3")
true
iex> ExBankID.PayloadHelpers.oid?("1.2.3.4.5")
true
iex> ExBankID.PayloadHelpers.oid?("1.2.3.4.10")
true
iex> ExBankID.PayloadHelpers.oid?("1.2.3.4.25")
true
iex> ExBankID.PayloadHelpers.oid?("1.2.752.71.1.3")
true
iex> ExBankID.PayloadHelpers.oid?("1.2.752.60.1.6")
true
iex> ExBankID.PayloadHelpers.oid?("1.2.752.*.1.6")
false
iex> ExBankID.PayloadHelpers.oid?("1.2.752.60.*")
true
iex> ExBankID.PayloadHelpers.oid?("1.2.752.60.1.*")
true