Table of Contents

Class: OTPAuthenticator Twisted-0.17.4/twisted/python/otp.py

A One Time Password System

Based on RFC 2289, which is based on a the S/KEY Authentication-scheme. It uses the MD5- and SHA-algorithms for hashing

The variable OTP is at all times a 64bit string

Methods   
__init__
calculateParity
challenge
foldDigest
foldDigest128
foldDigest160
generateOTP
generateSeed
hashUpdate
makeReadable
parsePhrase
  __init__ 
__init__ ( self,  hash=md5 )

Set the hash to either md5 or sha1

  calculateParity 
calculateParity ( self,  otp )

Calculate the parity from a 64bit OTP

  challenge 
challenge (
        self,
        seed,
        sequence,
        )

Return a challenge in the format otp-<hash> <sequence> <seed>

  foldDigest 
foldDigest ( self,  otp )

  foldDigest128 
foldDigest128 ( self,  otp128 )

Fold a 128 bit digest to 64 bit

  foldDigest160 
foldDigest160 ( self,  otp160 )

Fold a 160 bit digest to 64 bit

  generateOTP 
generateOTP (
        self,
        seed,
        passwd,
        sequence,
        )

Return a 64 bit OTP based on inputs Run through makeReadable to get a 6 word pass-phrase

  generateSeed 
generateSeed ( self )

Return a 10 char random seed, with 6 lowercase chars and 4 digits

  hashUpdate 
hashUpdate ( self,  digest )

Run through the hash and fold to 64 bit

  makeReadable 
makeReadable ( self,  otp )

Returns a 6 word pass-phrase from a 64bit OTP

  parsePhrase 
parsePhrase ( self,  phrase )

Decode the phrase, and return a 64bit OTP I will raise Unauthorized if the parity is wrong TODO: Add support for hex (MUST) and the 2nd scheme(SHOULD)

Exceptions   
Unauthorized( "Parity error" )

Table of Contents

This document was automatically generated on Sat Apr 20 01:31:23 2002 by HappyDoc version 2.0