swauth.authtypesΒΆ

This module hosts available auth types for encoding and matching user keys. For adding a new auth type, simply write a class that satisfies the following conditions:

  • For the class name, capitalize first letter only. This makes sure the user can specify an all-lowercase config option such as “plaintext” or “sha1”. Swauth takes care of capitalizing the first letter before instantiating it.
  • Write an encode(key) method that will take a single argument, the user’s key, and returns the encoded string. For plaintext, this would be “plaintext:<key>”
  • Write a match(key, creds) method that will take two arguments: the user’s key, and the user’s retrieved credentials. Return a boolean value that indicates whether the match is True or False.
swauth.authtypes.MAX_TOKEN_LENGTH = 5000

Maximum length any valid token should ever be.

class swauth.authtypes.Plaintext[source]

Bases: object

Provides a particular auth type for encoding format for encoding and matching user keys.

This class must be all lowercase except for the first character, which must be capitalized. encode and match methods must be provided and are the only ones that will be used by swauth.

encode(key)[source]

Encodes a user key into a particular format. The result of this method will be used by swauth for storing user credentials.

Parameters:key – User’s secret key
Returns:A string representing user credentials
match(key, creds)[source]

Checks whether the user-provided key matches the user’s credentials

Parameters:
  • key – User-supplied key
  • creds – User’s stored credentials
Returns:

True if the supplied key is valid, False otherwise

class swauth.authtypes.Sha1[source]

Bases: object

Provides a particular auth type for encoding format for encoding and matching user keys.

This class must be all lowercase except for the first character, which must be capitalized. encode and match methods must be provided and are the only ones that will be used by swauth.

encode(key)[source]

Encodes a user key into a particular format. The result of this method will be used by swauth for storing user credentials.

Parameters:key – User’s secret key
Returns:A string representing user credentials
encode_w_salt(salt, key)[source]

Encodes a user key with salt into a particular format. The result of this method will be used internally.

Parameters:
  • salt – Salt for hashing
  • key – User’s secret key
Returns:

A string representing user credentials

match(key, creds)[source]

Checks whether the user-provided key matches the user’s credentials

Parameters:
  • key – User-supplied key
  • creds – User’s stored credentials
Returns:

True if the supplied key is valid, False otherwise

class swauth.authtypes.Sha512[source]

Bases: object

Provides a particular auth type for encoding format for encoding and matching user keys.

This class must be all lowercase except for the first character, which must be capitalized. encode and match methods must be provided and are the only ones that will be used by swauth.

encode(key)[source]

Encodes a user key into a particular format. The result of this method will be used by swauth for storing user credentials.

Parameters:key – User’s secret key
Returns:A string representing user credentials
encode_w_salt(salt, key)[source]

Encodes a user key with salt into a particular format. The result of this method will be used internal.

Parameters:
  • salt – Salt for hashing
  • key – User’s secret key
Returns:

A string representing user credentials

match(key, creds)[source]

Checks whether the user-provided key matches the user’s credentials

Parameters:
  • key – User-supplied key
  • creds – User’s stored credentials
Returns:

True if the supplied key is valid, False otherwise