cwm_crypto (version 1.9)
index
/devel/WWW/2000/10/swap/cwm_crypto.py

Cryptographic Built-Ins for CWM/Llyn
 
The continuing story of cryptographic builtins.
 
cf. http://www.w3.org/2000/10/swap/cwm.py
http://www.amk.ca/python/writing/pycrypt/node16.html

 
Modules
            
Crypto.PublicKey.RSA
base64
binascii
md5
quopri
Crypto.Util.randpool
sha
 
Classes
            
term.Function(term.BuiltIn)
BI_keyLength(term.LightBuiltIn, term.Function, term.ReverseFunction)
BI_md5(term.LightBuiltIn, term.Function)
BI_publicKey(term.LightBuiltIn, term.Function)
BI_sha(term.LightBuiltIn, term.Function)
BI_sign(term.LightBuiltIn, term.Function)
BI_verifyBoolean(term.LightBuiltIn, term.Function)
term.LightBuiltIn(term.BuiltIn)
BI_keyLength(term.LightBuiltIn, term.Function, term.ReverseFunction)
BI_md5(term.LightBuiltIn, term.Function)
BI_publicKey(term.LightBuiltIn, term.Function)
BI_sha(term.LightBuiltIn, term.Function)
BI_sign(term.LightBuiltIn, term.Function)
BI_verify
BI_verifyBoolean(term.LightBuiltIn, term.Function)
term.ReverseFunction(term.BuiltIn)
BI_keyLength(term.LightBuiltIn, term.Function, term.ReverseFunction)
 
class BI_keyLength(term.LightBuiltIn, term.Function, term.ReverseFunction)
       
  
Method resolution order:
BI_keyLength
term.LightBuiltIn
term.BuiltIn
term.Fragment
term.Term
term.Function
term.ReverseFunction

Methods defined here:
__init__(self, resource, fragid)
evaluateObject(self, subj_py)
evaluateSubject(self, obj_py)
Generates an RSA keypair, and spews it out as plain text.
Has the limitation that it will *only* ever let you generate 
one key pair (per iteration), in order to work around a bug.

Data and non-method functions defined here:
__doc__ = None
__module__ = 'cwm_crypto'

Methods inherited from term.BuiltIn:
eval(self, subj, obj, queue, bindings, proof, query)
This function which has access to the store, unless overridden,
calls a simpler one which uses python conventions.
 
To reduce confusion, the inital ones called with the internals available
use abreviations "eval", "subj" etc while the python-style ones use evaluate, subject, etc.

Methods inherited from term.Fragment:
dereference(self, mode='', workingContext=None)
dereference an identifyer, finding the semantics of its schema if any
 
Returns None if it cannot be retreived.
generated(self)
 A generated identifier?
This arises when a document is parsed and a arbitrary
name is made up to represent a node with no known URI.
It is useful to know that its ID has no use outside that
context.
reification(self, sink, why=None)
Describe myself in RDF to the given context
 
[ reify:uri "http://example.org/#whatever"]
representation(self, base=None)
 Optimize output if prefixes available
uriref(self)
uriref2(self, base)

Methods inherited from term.Term:
__repr__(self)
This method only used for debugging output - it can be ambiguous,
as it is is deliberately short to make debug printout readable.
 
output as XML qnames [http://www.w3.org/TR/REC-xml-names/#NT-QName].
This could be beefed up to guarantee unambiguity.
asPair(self)
Representation in an earlier format, being phased out 2002/08
 
The first part of the pair is a constant number represnting the type
see RDFSink.py.  the second is the value -- uri for symbols, string for literals
debugString(self, already)
occurringIn(self, vars)
substituteEquals(self, bindings, newRedirections)
Return this or a version of me with substitution made
substitution(self, bindings, why=None)
Return this or a version of me with subsitution made
unify(self, other, vars, existentials, bindings)
Unify this which may contain variables with the other,
which may contain existentials but not variables.
Return 0 if impossible.
return [({}, reason] if no new bindings
Return [( {var1: val1, var2: val2,...}, reason), ...] if match
value(self)
As a python value - by default, none exists, use self

Methods inherited from term.Function:
evalObj(self, subj, queue, bindings, proof, query)
This function which has access to the store, unless overridden,
calls a simpler one which uses python conventions.
 
To reduce confusion, the inital ones called with the internals available
use abreviations "eval", "subj" etc while the python-style ones use "evaluate", "subject", etc.

Methods inherited from term.ReverseFunction:
evalSubj(self, obj, queue, bindings, proof, query)
This function which has access to the store, unless overridden,
calls a simpler one which uses python conventions
 
class BI_md5(term.LightBuiltIn, term.Function)
       
  
Method resolution order:
BI_md5
term.LightBuiltIn
term.BuiltIn
term.Fragment
term.Term
term.Function

Methods defined here:
evaluateObject(self, subj_py)

Data and non-method functions defined here:
__doc__ = None
__module__ = 'cwm_crypto'

Methods inherited from term.BuiltIn:
__init__(self, resource, fragid)
eval(self, subj, obj, queue, bindings, proof, query)
This function which has access to the store, unless overridden,
calls a simpler one which uses python conventions.
 
To reduce confusion, the inital ones called with the internals available
use abreviations "eval", "subj" etc while the python-style ones use evaluate, subject, etc.

Methods inherited from term.Fragment:
dereference(self, mode='', workingContext=None)
dereference an identifyer, finding the semantics of its schema if any
 
Returns None if it cannot be retreived.
generated(self)
 A generated identifier?
This arises when a document is parsed and a arbitrary
name is made up to represent a node with no known URI.
It is useful to know that its ID has no use outside that
context.
reification(self, sink, why=None)
Describe myself in RDF to the given context
 
[ reify:uri "http://example.org/#whatever"]
representation(self, base=None)
 Optimize output if prefixes available
uriref(self)
uriref2(self, base)

Methods inherited from term.Term:
__repr__(self)
This method only used for debugging output - it can be ambiguous,
as it is is deliberately short to make debug printout readable.
 
output as XML qnames [http://www.w3.org/TR/REC-xml-names/#NT-QName].
This could be beefed up to guarantee unambiguity.
asPair(self)
Representation in an earlier format, being phased out 2002/08
 
The first part of the pair is a constant number represnting the type
see RDFSink.py.  the second is the value -- uri for symbols, string for literals
debugString(self, already)
occurringIn(self, vars)
substituteEquals(self, bindings, newRedirections)
Return this or a version of me with substitution made
substitution(self, bindings, why=None)
Return this or a version of me with subsitution made
unify(self, other, vars, existentials, bindings)
Unify this which may contain variables with the other,
which may contain existentials but not variables.
Return 0 if impossible.
return [({}, reason] if no new bindings
Return [( {var1: val1, var2: val2,...}, reason), ...] if match
value(self)
As a python value - by default, none exists, use self

Methods inherited from term.Function:
evalObj(self, subj, queue, bindings, proof, query)
This function which has access to the store, unless overridden,
calls a simpler one which uses python conventions.
 
To reduce confusion, the inital ones called with the internals available
use abreviations "eval", "subj" etc while the python-style ones use "evaluate", "subject", etc.
 
class BI_publicKey(term.LightBuiltIn, term.Function)
       
  
Method resolution order:
BI_publicKey
term.LightBuiltIn
term.BuiltIn
term.Fragment
term.Term
term.Function

Methods defined here:
evaluateObject(self, subj_py)
Generate a quopri public key from a keypair.

Data and non-method functions defined here:
__doc__ = None
__module__ = 'cwm_crypto'

Methods inherited from term.BuiltIn:
__init__(self, resource, fragid)
eval(self, subj, obj, queue, bindings, proof, query)
This function which has access to the store, unless overridden,
calls a simpler one which uses python conventions.
 
To reduce confusion, the inital ones called with the internals available
use abreviations "eval", "subj" etc while the python-style ones use evaluate, subject, etc.

Methods inherited from term.Fragment:
dereference(self, mode='', workingContext=None)
dereference an identifyer, finding the semantics of its schema if any
 
Returns None if it cannot be retreived.
generated(self)
 A generated identifier?
This arises when a document is parsed and a arbitrary
name is made up to represent a node with no known URI.
It is useful to know that its ID has no use outside that
context.
reification(self, sink, why=None)
Describe myself in RDF to the given context
 
[ reify:uri "http://example.org/#whatever"]
representation(self, base=None)
 Optimize output if prefixes available
uriref(self)
uriref2(self, base)

Methods inherited from term.Term:
__repr__(self)
This method only used for debugging output - it can be ambiguous,
as it is is deliberately short to make debug printout readable.
 
output as XML qnames [http://www.w3.org/TR/REC-xml-names/#NT-QName].
This could be beefed up to guarantee unambiguity.
asPair(self)
Representation in an earlier format, being phased out 2002/08
 
The first part of the pair is a constant number represnting the type
see RDFSink.py.  the second is the value -- uri for symbols, string for literals
debugString(self, already)
occurringIn(self, vars)
substituteEquals(self, bindings, newRedirections)
Return this or a version of me with substitution made
substitution(self, bindings, why=None)
Return this or a version of me with subsitution made
unify(self, other, vars, existentials, bindings)
Unify this which may contain variables with the other,
which may contain existentials but not variables.
Return 0 if impossible.
return [({}, reason] if no new bindings
Return [( {var1: val1, var2: val2,...}, reason), ...] if match
value(self)
As a python value - by default, none exists, use self

Methods inherited from term.Function:
evalObj(self, subj, queue, bindings, proof, query)
This function which has access to the store, unless overridden,
calls a simpler one which uses python conventions.
 
To reduce confusion, the inital ones called with the internals available
use abreviations "eval", "subj" etc while the python-style ones use "evaluate", "subject", etc.
 
class BI_sha(term.LightBuiltIn, term.Function)
       
  
Method resolution order:
BI_sha
term.LightBuiltIn
term.BuiltIn
term.Fragment
term.Term
term.Function

Methods defined here:
evaluateObject(self, subj_py)

Data and non-method functions defined here:
__doc__ = None
__module__ = 'cwm_crypto'

Methods inherited from term.BuiltIn:
__init__(self, resource, fragid)
eval(self, subj, obj, queue, bindings, proof, query)
This function which has access to the store, unless overridden,
calls a simpler one which uses python conventions.
 
To reduce confusion, the inital ones called with the internals available
use abreviations "eval", "subj" etc while the python-style ones use evaluate, subject, etc.

Methods inherited from term.Fragment:
dereference(self, mode='', workingContext=None)
dereference an identifyer, finding the semantics of its schema if any
 
Returns None if it cannot be retreived.
generated(self)
 A generated identifier?
This arises when a document is parsed and a arbitrary
name is made up to represent a node with no known URI.
It is useful to know that its ID has no use outside that
context.
reification(self, sink, why=None)
Describe myself in RDF to the given context
 
[ reify:uri "http://example.org/#whatever"]
representation(self, base=None)
 Optimize output if prefixes available
uriref(self)
uriref2(self, base)

Methods inherited from term.Term:
__repr__(self)
This method only used for debugging output - it can be ambiguous,
as it is is deliberately short to make debug printout readable.
 
output as XML qnames [http://www.w3.org/TR/REC-xml-names/#NT-QName].
This could be beefed up to guarantee unambiguity.
asPair(self)
Representation in an earlier format, being phased out 2002/08
 
The first part of the pair is a constant number represnting the type
see RDFSink.py.  the second is the value -- uri for symbols, string for literals
debugString(self, already)
occurringIn(self, vars)
substituteEquals(self, bindings, newRedirections)
Return this or a version of me with substitution made
substitution(self, bindings, why=None)
Return this or a version of me with subsitution made
unify(self, other, vars, existentials, bindings)
Unify this which may contain variables with the other,
which may contain existentials but not variables.
Return 0 if impossible.
return [({}, reason] if no new bindings
Return [( {var1: val1, var2: val2,...}, reason), ...] if match
value(self)
As a python value - by default, none exists, use self

Methods inherited from term.Function:
evalObj(self, subj, queue, bindings, proof, query)
This function which has access to the store, unless overridden,
calls a simpler one which uses python conventions.
 
To reduce confusion, the inital ones called with the internals available
use abreviations "eval", "subj" etc while the python-style ones use "evaluate", "subject", etc.
 
class BI_sign(term.LightBuiltIn, term.Function)
       
  
Method resolution order:
BI_sign
term.LightBuiltIn
term.BuiltIn
term.Fragment
term.Term
term.Function

Methods defined here:
evaluateObject(self, subj_py)
Sign a hash with a key, and get a signature back.

Data and non-method functions defined here:
__doc__ = None
__module__ = 'cwm_crypto'

Methods inherited from term.BuiltIn:
__init__(self, resource, fragid)
eval(self, subj, obj, queue, bindings, proof, query)
This function which has access to the store, unless overridden,
calls a simpler one which uses python conventions.
 
To reduce confusion, the inital ones called with the internals available
use abreviations "eval", "subj" etc while the python-style ones use evaluate, subject, etc.

Methods inherited from term.Fragment:
dereference(self, mode='', workingContext=None)
dereference an identifyer, finding the semantics of its schema if any
 
Returns None if it cannot be retreived.
generated(self)
 A generated identifier?
This arises when a document is parsed and a arbitrary
name is made up to represent a node with no known URI.
It is useful to know that its ID has no use outside that
context.
reification(self, sink, why=None)
Describe myself in RDF to the given context
 
[ reify:uri "http://example.org/#whatever"]
representation(self, base=None)
 Optimize output if prefixes available
uriref(self)
uriref2(self, base)

Methods inherited from term.Term:
__repr__(self)
This method only used for debugging output - it can be ambiguous,
as it is is deliberately short to make debug printout readable.
 
output as XML qnames [http://www.w3.org/TR/REC-xml-names/#NT-QName].
This could be beefed up to guarantee unambiguity.
asPair(self)
Representation in an earlier format, being phased out 2002/08
 
The first part of the pair is a constant number represnting the type
see RDFSink.py.  the second is the value -- uri for symbols, string for literals
debugString(self, already)
occurringIn(self, vars)
substituteEquals(self, bindings, newRedirections)
Return this or a version of me with substitution made
substitution(self, bindings, why=None)
Return this or a version of me with subsitution made
unify(self, other, vars, existentials, bindings)
Unify this which may contain variables with the other,
which may contain existentials but not variables.
Return 0 if impossible.
return [({}, reason] if no new bindings
Return [( {var1: val1, var2: val2,...}, reason), ...] if match
value(self)
As a python value - by default, none exists, use self

Methods inherited from term.Function:
evalObj(self, subj, queue, bindings, proof, query)
This function which has access to the store, unless overridden,
calls a simpler one which uses python conventions.
 
To reduce confusion, the inital ones called with the internals available
use abreviations "eval", "subj" etc while the python-style ones use "evaluate", "subject", etc.
 
class BI_verify(term.LightBuiltIn)
       
  
Method resolution order:
BI_verify
term.LightBuiltIn
term.BuiltIn
term.Fragment
term.Term

Methods defined here:
evaluate(self, subj_py, obj_py)
Verify a hash/signature.

Data and non-method functions defined here:
__doc__ = None
__module__ = 'cwm_crypto'

Methods inherited from term.BuiltIn:
__init__(self, resource, fragid)
eval(self, subj, obj, queue, bindings, proof, query)
This function which has access to the store, unless overridden,
calls a simpler one which uses python conventions.
 
To reduce confusion, the inital ones called with the internals available
use abreviations "eval", "subj" etc while the python-style ones use evaluate, subject, etc.

Methods inherited from term.Fragment:
dereference(self, mode='', workingContext=None)
dereference an identifyer, finding the semantics of its schema if any
 
Returns None if it cannot be retreived.
generated(self)
 A generated identifier?
This arises when a document is parsed and a arbitrary
name is made up to represent a node with no known URI.
It is useful to know that its ID has no use outside that
context.
reification(self, sink, why=None)
Describe myself in RDF to the given context
 
[ reify:uri "http://example.org/#whatever"]
representation(self, base=None)
 Optimize output if prefixes available
uriref(self)
uriref2(self, base)

Methods inherited from term.Term:
__repr__(self)
This method only used for debugging output - it can be ambiguous,
as it is is deliberately short to make debug printout readable.
 
output as XML qnames [http://www.w3.org/TR/REC-xml-names/#NT-QName].
This could be beefed up to guarantee unambiguity.
asPair(self)
Representation in an earlier format, being phased out 2002/08
 
The first part of the pair is a constant number represnting the type
see RDFSink.py.  the second is the value -- uri for symbols, string for literals
debugString(self, already)
occurringIn(self, vars)
substituteEquals(self, bindings, newRedirections)
Return this or a version of me with substitution made
substitution(self, bindings, why=None)
Return this or a version of me with subsitution made
unify(self, other, vars, existentials, bindings)
Unify this which may contain variables with the other,
which may contain existentials but not variables.
Return 0 if impossible.
return [({}, reason] if no new bindings
Return [( {var1: val1, var2: val2,...}, reason), ...] if match
value(self)
As a python value - by default, none exists, use self
 
class BI_verifyBoolean(term.LightBuiltIn, term.Function)
       
  
Method resolution order:
BI_verifyBoolean
term.LightBuiltIn
term.BuiltIn
term.Fragment
term.Term
term.Function

Methods defined here:
evaluateObject(self, subj_py)
Verify a hash/signature.

Data and non-method functions defined here:
__doc__ = None
__module__ = 'cwm_crypto'

Methods inherited from term.BuiltIn:
__init__(self, resource, fragid)
eval(self, subj, obj, queue, bindings, proof, query)
This function which has access to the store, unless overridden,
calls a simpler one which uses python conventions.
 
To reduce confusion, the inital ones called with the internals available
use abreviations "eval", "subj" etc while the python-style ones use evaluate, subject, etc.

Methods inherited from term.Fragment:
dereference(self, mode='', workingContext=None)
dereference an identifyer, finding the semantics of its schema if any
 
Returns None if it cannot be retreived.
generated(self)
 A generated identifier?
This arises when a document is parsed and a arbitrary
name is made up to represent a node with no known URI.
It is useful to know that its ID has no use outside that
context.
reification(self, sink, why=None)
Describe myself in RDF to the given context
 
[ reify:uri "http://example.org/#whatever"]
representation(self, base=None)
 Optimize output if prefixes available
uriref(self)
uriref2(self, base)

Methods inherited from term.Term:
__repr__(self)
This method only used for debugging output - it can be ambiguous,
as it is is deliberately short to make debug printout readable.
 
output as XML qnames [http://www.w3.org/TR/REC-xml-names/#NT-QName].
This could be beefed up to guarantee unambiguity.
asPair(self)
Representation in an earlier format, being phased out 2002/08
 
The first part of the pair is a constant number represnting the type
see RDFSink.py.  the second is the value -- uri for symbols, string for literals
debugString(self, already)
occurringIn(self, vars)
substituteEquals(self, bindings, newRedirections)
Return this or a version of me with substitution made
substitution(self, bindings, why=None)
Return this or a version of me with subsitution made
unify(self, other, vars, existentials, bindings)
Unify this which may contain variables with the other,
which may contain existentials but not variables.
Return 0 if impossible.
return [({}, reason] if no new bindings
Return [( {var1: val1, var2: val2,...}, reason), ...] if match
value(self)
As a python value - by default, none exists, use self

Methods inherited from term.Function:
evalObj(self, subj, queue, bindings, proof, query)
This function which has access to the store, unless overridden,
calls a simpler one which uses python conventions.
 
To reduce confusion, the inital ones called with the internals available
use abreviations "eval", "subj" etc while the python-style ones use "evaluate", "subject", etc.
 
Functions
            
baseDecode(s)
baseEncode(s)
decToBin(i)
formatObject(obj)
Print the various bits found within a key (works on any object).
keyToQuo(key, joi='\n\n')
Returns a quoted printable version of a key - ee then m.
Leading and trailing whitespace is allowed; stripped by quoToKey.
newKey(e, n, d=None, p=None, q=None)
Create a new key.
quoToKey(strkey, spl='\n\n')
Returns a key from quopri (ee then m) version of a key.
register(store)
 
Data
             CRYPTO_NS_URI = 'http://www.w3.org/2000/10/swap/crypto#'
USE_PKC = 1
__author__ = 'Sean B. Palmer'
__cvsid__ = '$Id: cwm_crypto.html,v 1.6 2004/02/04 17:57:06 timbl Exp $'
__file__ = './cwm_crypto.pyc'
__name__ = 'cwm_crypto'
__version__ = '$Revision: 1.6 $'
 
Author
             Sean B. Palmer