linotp.tokens.voicetoken.voicetoken module

class linotp.tokens.voicetoken.voicetoken.VoiceTokenClass(token_obj)

Bases: HmacTokenClass

Voice token class implementation

challenge is triggered and otp comes via phone call to the user

checkOtp(otp_value, counter, window, options=None)

checkOtp - validate the token otp against a given otpvalue

Parameters
  • otp_value (string) – the to be verified otpvalue

  • counter (int) – the counter state, that should be verified

  • window (int) – the counter +window, which should be checked

  • options (dict) – the dict, which could contain token specific info

Returns

the counter state or -1

checkResponse4Challenge(user, passw, options=None, challenges=None)

verify the response of a previous challenge

Parameters
  • user – requesting user

  • passw – to be checked pass (pin+otp)

  • options – an additional argument, which could be token specific

  • challenges – list of challenges, where each challenge is described as dict

Returns

tuple containing a) otp counter and b) the list of matching challenges: (a,b)

do the standard check for the response of the challenge + change the tokeninfo data of the last challenge

createChallenge(transaction_id, options=None)

create a challenge which is submitted to the user

Create a random counter and return it to the challenge dict, as well to the submit method which creates an otp for the phone call based on this counter.

Parameters
  • transaction_id – the id of this challenge

  • options – the request context parameters / data

Returns

tuple of (bool, message and data) bool, whether submit was successful message is submitted to the user data is preserved in the challenge attributes - additional attributes, which are added in to the

challenge dict (in the method which calls this method)

classmethod getClassInfo(key=None, ret='all')

getClassInfo - returns a subtree of the token definition

Parameters
  • key (string) – subsection identifier

  • ret (user defined) – default return value, if nothing is found

Returns

subsection if key exists or user defined

Return type

s.o.

classmethod getClassPrefix()
classmethod getClassType()

getClassType - return the token type shortname

Returns

‘voice’

getInitDetail(params, user=None)

Returns additional details upon initialisation of the token

getOtp(curTime=None)

:raises NotImplementedError

get_mobile_number(user=None)
get the mobile number
  • from the token info or

  • if the policy allowes it, from the user info

get_phone()

getter for the phone number

Returns

phone number

Return type

string

initChallenge(transaction_id, challenges=None, options=None)

initialize the challenge

Parameters
  • transaction_id – the id of the new challenge

  • challenges – the challenges list.

  • options – the request parameters

Returns

tuple of success - bool trans_id - the best transaction id for this request context message - which is shown to the user attributes - further info (dict) shown to the user

is_challenge_request(passw, user, options=None)

check if the request would start a challenge

  • default: if the passw contains only the pin, this request would

    trigger a challenge

  • in this place as well the policy for a token is checked

Parameters
  • passw – password, which might be pin or pin+otp

  • options – dictionary of additional request parameters

Returns

returns true or false

is_challenge_response(passw, user, options=None, challenges=None)

check if the request contains the result of a challenge

Parameters
  • passw – password, which might be pin or pin+otp

  • user – the requesting user

  • options – dictionary of additional request parameters

  • challenges – Not used in this method #TODO

Returns

returns true or false

set_phone(phone)

setter for the phone number

Parameters

phone (string) – phone number

update(param, reset_fail_count=True)

token initialization with user parameters

Parameters

param – dict of initialization parameters

:param reset_fail_count : boolean if the fail count should be reset

Returns

nothing

linotp.tokens.voicetoken.voicetoken.get_voice_language(user='', realm='')

This function returns the voice language as defined in the policy authentication/voice_language. If no such policy is defined, the function returns the fallback message “en”

Returns

string

linotp.tokens.voicetoken.voicetoken.get_voice_message(user='', realm='')

This function returns the voice message as defined in the policy authentication/voice_message. If no such policy is defined, the function returns the fallback message “{otp}”

Returns

string