Viewing File: /usr/lib/python2.7/site-packages/passlib/crypto/des.pyo
ó
ö
5Xc @ s d Z d d l Z d d l m Z d d l m Z m Z m Z m Z m Z d d g Z d Z
d Z d Z d
Z
d Z d Z e a a a a d
„ Z d „ Z e j d ƒ Z d „ Z d „ Z d „ Z d „ Z e d d d ƒ Z d „ Z d „ Z d d d „ Z d d d „ Z! d S( s£ passlib.crypto.des -- DES block encryption routines
History
=======
These routines (which have since been drastically modified for python)
are based on a Java implementation of the des-crypt algorithm,
found at `<http://www.dynamic.net.au/christos/crypt/UnixCrypt2.txt>`_.
The copyright & license for that source is as follows::
UnixCrypt.java 0.9 96/11/25
Copyright (c) 1996 Aki Yoshida. All rights reserved.
Permission to use, copy, modify and distribute this software
for non-commercial or commercial purposes and without fee is
hereby granted provided that this copyright notice appears in
all copies.
---
Unix crypt(3C) utility
@version 0.9, 11/25/96
@author Aki Yoshida
---
modified April 2001
by Iris Van den Broeke, Daniel Deville
---
Unix Crypt.
Implements the one way cryptography used by Unix systems for
simple password protection.
@version $Id: UnixCrypt2.txt,v 1.1.1.1 2005/09/13 22:20:13 christos Exp $
@author Greg Wilkins (gregw)
The netbsd des-crypt implementation has some nice notes on how this all works -
http://fxr.googlebit.com/source/lib/libcrypt/crypt.c?v=NETBSD-CURRENT
iÿÿÿÿN( t exc( t join_byte_valuest byte_elem_valuet irangeR t int_typest expand_des_keyt des_encrypt_blockiÿÿÿ Iÿÿÿÿÿÿÿ l ÿÿÿÿ l þ~ý}û{÷w Il ÿÿósçg c G C sf dîdïdðdñdòdódôdõdöd÷dødùdúdûdüdýf } dþdÿd ddddddddd d
ddd
f } ddddddddddddddddf } | | f | | f | | f | | f | | f | | f | | f | | f f a ddd d!d"d#d$d%f a d&d'd(d)d*d+d,d-f a d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=f a díS(> s3 delay loading tables until they are actually neededi i i i i i $ i i $ I I I I € I € I € I € I I I I I € I € I € I € i@ i i@ i i@ i i@ I I I I I I I I @I @I HI HI AI AI II Ii I I i i I I I @ I I @ I € I @€ I €I @€I € I €@ I € I €@ I € € I €@€ I € €I €@€i i i i @i Pi @i PI I I I I I I I I I I I I I I i€ i i€ i € i€ € i ˆ i€ ˆ i I I I I I I I I I I I 0 I 0 I 0 I 0 i @ i i @i i @ i i @i € I @ I € @ I @ I € @ I @ @ I € @ @ l l l l l l l l i @ i i@ i i@ i i@ I I I I I I I I I I ! I ! I I I !I !I I I i I I I I € I I € I I € I I € I I € I I € I I € I I € i I i ( I I ( i I I i i ( I I ( I € I € I @ I @€ I @€ I I ˆ I ˆ i @I @ I @ˆ I @ˆ i@ i i i€ i i @i @i @i€ @i @i€ @i @i i i$ i$ I I I I I I$ I$ i€ I I € I€ I I € I€ I 0 I 0 I € 0 I€ 0 I H I P I I X I @ @I @I H @I @I P @I @I X @i @ I @ I I @ I @ I I @ I I @ I I @ I I I I I I I I I I I @ I € @ I € I € @ I @ I I @ I I @ I I @ l I l € l € I l l ( I I l € l € ( I € I @€ I @ I @€ I I € I D I D€ I D I D€ I € I ˆ I I ˆ I € I $ I $€ I I ˆ I $ I $ˆ i i @€ I €€ I @ € I @€€ i „ i @ i @„ I € I „€ I @€ I @„€ i @I i€ I€ I€ i I I i€ i€ I€ I€ I I I I i I I i i I I i I@ I I@ i@€ I € I@€ i € i@€ I € I@€ i I I I l l l l l l I I I I
I I
I I
I I
i @ I @ @ I @ I @ @ I @ I I @ I @I @ @I @I @ @I € I € € I I € I € I I I € I € I I @I @I @I @ I D I D I @ @I D @I D @I @ I @ I ( I @( I I @ I ˆ I @ˆ I ¨ I @¨ I I I I I I I I I I I I I I I I I I I I i € iˆ€ I € I €€ I€ € Iˆ€€ I € I ˆ€ I€€ Iˆˆ€ I ˆ€ I ˆˆ€ I€ˆ€ Iˆˆˆ€ I € I € I ˆ€ I€ I€ €I€ € I€ ˆ€l @ l @ l D l D l € @@ l € @D l € D@ l € DD i i i i i i i i iI I I I I I I I I i i i i i i i i i I I I I I I I I I i@ I@ ID@ i @i@@I@ @ ID@@ i @ iD@ I@@ IDD@ i D@iDD@I@D@ IDDD@ I @ I @ I D@ I @I @@I @ @I D@@I @ I D@ I @@ I DD@ I D@I DD@I @D@I DDD@I €€ I €€ I €€ I € I € I € I € I € I €€ I € I@ € I € i@ I@ I € I@ € I@ I I@ € I@ € I € i@ I @@ I@ I @ I @ I @ I @@ I@@ I I@@ I @ I€ @ I I€@ i @I€ I€ @ I @ I€ I€ I€@ I @ I € @ I € I € @ I @ I € I € I @ I € @ I € @ I @ I€ @I @I€ I€ @I @I€ @I I€ i€ I @I€ @I I@ I@ @ I@ @ I @ I@ I@ I @ I @ I@ @ I@ @ l @ I € l € @ I l @ I € l ‚ @ I € l ‚ @ l € @ l @ I I I I I I I I I I i i i i i i i i i i i i i i iI €€ I €€ I €€€ l l l l l l l I I I I I I I I I I I i€€ i €€ i€€€ I€ € I € € I€€ € I€ €€ I €€€ I€€€€ i i i i i i i i i i iI I I I I I I I I i i i i i i i i i i i i i i iI @@ I @@ I @@@ I @ @I @@ @I @@I @ @@I @@@I @@@@I I I I I I I I I I I i@@ i@ @ i @@ i@@@ i@ @i @ @i@@ @i @@i@ @@i @@@i@@@@i i i i i i i i i iN( i i i i i i i i i i i $ i $ i i i $ i $ ( i I I I I € I € I € I € I I I I I € I € I € I € ( i i i@ i@ i i i@ i@ i i i@ i@ i i i@ i@ ( i I I I I I I I I @I @I HI HI AI AI II I( i i i i I I I I i i i i I I I I ( i I @ I I @ I € I @€ I €I @€I € I €@ I € I €@ I € € I €@€ I € €I €@€( i i i i i i i i i @i @i Pi Pi @i @i Pi P( i I I I I I I I I I I I I I I I ( i i i€ i€ i i i€ i€ i € i € i€ € i€ € i ˆ i ˆ i€ ˆ i€ ˆ ( i i I I I I I I I I I I I 0 I 0 I 0 I 0 ( i i i @ i @ i i i @i @i i i @ i @ i i i @i @( i i € I @ I € @ I @ I € @ I @ @ I € @ @ l l l l l l l l ( i i i @ i @ i i i@ i@ i i i@ i@ i i i@ i@ ( i I I I I I I I I I I ! I ! I I I !I !( i i I I I I I I i i I I I I I I ( i I € I I € I I € I I € I I € I I € I I € I I € ( i i i i i i i i i i i i i i i i ( i i I I i i ( I I ( i i I I i i ( I I ( ( i i i i I I I I i € i € i € i € I € I € I € I € ( i I I € I € i @ I @ I @€ I @€ i I I ˆ I ˆ i @I @ I @ˆ I @ˆ ( i i i i i@ i@ i@ i@ i i i i i@ i@ i@ i@ ( i i i i i€ i i€ i i @i @i @i @i€ @i @i€ @i @( i i i i i i i i i i i i i i i i ( i i i i i i i$ i$ I I I I I I I$ I$ ( i i i € i€ I I I € I€ I I I € I€ I 0 I 0 I € 0 I€ 0 ( i I @ I I H I I P I I X I @I @ @I @I H @I @I P @I @I X @( i i @ i i @ I I @ I I @ I I @ I I @ I I @ I I @ ( i I I I I I I I I I I I I I I I ( i I @ I I @ I € I € @ I € I € @ I I @ I I @ I I @ I I @ ( i I l l I I l € l € I I l l ( I I l € l € ( ( i I € I I € I @ I @€ I @ I @€ I I € I I € I D I D€ I D I D€ ( i I € I I € I I ˆ I I ˆ I I € I $ I $€ I I ˆ I $ I $ˆ ( i i i i i i i i i i i i i i i i ( i i € i @ i @€ I € I €€ I @ € I @€€ i i „ i @ i @„ I € I „€ I @€ I @„€ ( i i i i i i i i i @i @i @i @i @i @i @i @( i i I I i€ i€ I€ I€ i i I I i€ i€ I€ I€ ( i i i i i i i i I I I I I I I I ( i i I I i i I I i i I I i i I I ( i i i i i i i i i i i i i i i i ( i i@ I I@ i i@ I I@ i € i@€ I € I@€ i € i@€ I € I@€ ( i i i i I I I I l l l l l l l l ( i I I I I I I I I I
I I
I I
I I
( i i @ i i @ I @ I @ @ I @ I @ @ I I @ I I @ I @I @ @I @I @ @( i I € I € I € € I I € I € I € € I I I € I € I I I € I € ( i I I I I @I @I @I @I @ I @ I D I D I @ @I @ @I D @I D @( i I @ I I @ I I @ I ( I @( I € I @€ I I @ I ˆ I @ˆ I ¨ I @¨ ( i I I I I I I I I I I I I I I I ( i I I I I I I I I I I I I I I I ( i i € i€ iˆ€ I € I €€ I€ € Iˆ€€ I € I ˆ€ I€€ Iˆˆ€ I ˆ€ I ˆˆ€ I€ˆ€ Iˆˆˆ€ ( i I € I € I ˆ€ I€ I€ €I€ € I€ ˆ€l @ l @ l D l D l € @@ l € @D l € D@ l € DD ( i i i i i i i i i i i i i i i i( i I I I I I I I I I I I I I I I ( i i i i i i i i i i i i i i i i ( i I I I I I I I I I I I I I I I ( i i@ I@ ID@ i @i@@I@ @ ID@@ i @ iD@ I@@ IDD@ i D@iDD@I@D@ IDDD@ ( i I @ I @ I D@ I @I @@I @ @I D@@I @ I D@ I @@ I DD@ I D@I DD@I @D@I DDD@(@ I €€ I € i I €€ i I €€ I € i I €€ I €€ I € I € I € i i I € I € i I € I €€ I €€ I € I € I € i I € I €€ I € I € I € I € i i I €€ I € I € I €€ I € I € I € I € I € I €€ i I €€ i i I € I €€ I €€ I € I € i I € I € i I € i I € I €€ i I € I € I €€ (@ I@ € i I € i@ I@ I € I@ € I € I € I@ I I@ € I I@ € i@ I i I@ € I@ I € I € i@ i I I@ € I € I@ € I@ i@ i I € I@ € I I@ € I@ € I € I@ € I I@ i i@ I € i I@ I € i@ I € I@ € I@ € I € i I@ I I@ € I € i@ I@ i I € I@ € I@ € I i@ I € (@ i@ I @@ I I@ I @ i @ I@ I @ I @ I @ I @@ i I@@ I i I@@ i I @ I @@ I I I@@ I @ i@ I@@ I @ I @ I @@ I @ i i @ I @ I @@ I i I @ I I @ I @@ I@ i I @@ I @ I@@ I @ i @ I@@ i I @ i@ i @ I@@ I @ I @ I@ I @ I @ i I@@ I i@ I @ I I @@ (@ I€ @ I I€ I€@ i i @I€ I€ @ I @ I€ i I€ I€ I€ @ i @i I€@ I @ I I€ I @ I€ i @I I€ i I€ @ I @ I I€@ I€@ i @I€@ I€ i @I€ I @ I I€ i @I€ i I I€ @ i I€@ I @ I i I€@ I€ @ i @I€@ I€ I I€ @ I€ @ I @ i @I€ I€ i I€ I @ (@ i € I I @ I € @ I € I € @ I @ I € I I I € I @ I € @ I € I € @ i I @ i € I I @ I € @ I @ i I € I I € @ I € @ I I € I @ I @ I € @ I € @ I € @ I I € I I I € I € @ i € I @ I € @ i I @ i € I @ I I € @ I @ i I € @ I € I € @ I @ I I @ I € I € @ I @ I I @ I € I € (@ I€ @I @i I€ I @I I€ @i I @I€ @I i€ I€ I€ @i€ I @i I€ @I€ @i I I @I€ I€ @I€ @i€ i€ I @I @I I @I€ I @i€ I€ I @I€ I @i I€ i€ I I€ @i I @I€ @I I @I€ @I i I€ @I€ @i€ I @i I I€ @I€ @I€ i€ I @I @I€ @(@ I @ I I I@ I@ @ I@ @ I @ i i I@ I@ I @ I@ I @ I @ I@ I@ I @ I@ @ I@ @ i I I@ I @ I@ @ I@ @ I @ I@ I@ @ I@ @ I i I@ @ I @ I@ @ I@ I @ I i I@ @ I@ I@ @ I @ i I I@ I@ I i I@ I I @ I@ I @ I@ @ i I @ I@ I@ @ I@ @ I@ I @ I @ I@ @ (@ l @ I € l € @ i I l @ I € l ‚ @ l @ i I € l € @ l ‚ @ l € @ l @ I € I l ‚ @ l @ I l ‚ @ l @ i I € i I € l € @ l @ I € I I € l @ I € I l @ l ‚ @ l € @ i i I € l @ l € @ I l @ I € l @ l @ I l ‚ @ I € I € l @ I € l € @ l € @ I € l @ I € l ‚ @ i i l @ I l ‚ @ ( i I I I I I I I I I I I I I I I ( i I I I I I I I I I I I I I I I ( i i i i i i i i i i i i i i i i ( i i i i i i i i i i i i i i i i( i I € I € I €€ I € I € € I €€ I €€€ l l l l l l l l ( i I I I I I I I I I I I I I I I ( i i€ i € i€€ i € i€ € i €€ i€€€ I € I€ € I € € I€€ € I €€ I€ €€ I €€€ I€€€€ ( i i i i i i i i i i i i i i i i( i I I I I I I I I I I I I I I I ( i I I I I I I I I I I I I I I I ( i i i i i i i i i i i i i i i i( i i i i i i i i i i i i i i i i( i I @ I @ I @@ I @ I @ @ I @@ I @@@ I @I @ @I @ @I @@ @I @@I @ @@I @@@I @@@@( i I I I I I I I I I I I I I I I ( i i@ i @ i@@ i @ i@ @ i @@ i@@@ i @i@ @i @ @i@@ @i @@i@ @@i @@@i@@@@( i i i i i i i i i i i i i i i i( t PCXROTt IE3264t SPEt CF6464( t PC1ROTt PC2ROTAt PC2ROTB( ( s6 /usr/lib/python2.7/site-packages/passlib/crypto/des.pyt _load_tablesQ sH
c C s7 d } x* | D]"