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