Ejemplo n.º 1
0
def test_spkilib():
    """Test based on spki examples draft

    The base64 encoded s-expressions form the draft are include in
    test/sexps.
    """
    from pisces.spkilib import sexp
    
    chunks = []
    chunk = []
    for line in fileinput.input('test/sexps'):
        if line.strip():
            chunk.append(line)
        else:
            chunks.append("\n".join(chunk))
            chunk = []
    chunks.append("\n".join(chunk))
    consts = eval(open("test/sexps.py").read())
    assert len(consts) == len(chunks), \
           "pisces.spkilib: error loading spkilib tests"
    for i in range(len(consts)):
        chunk = chunks[i]
        const = consts[i]
        sx1 = sexp.parse(chunk)
        sx2 = sexp.construct_seq(_cleanup(const))
        assert sx1 == sx2, \
               "pisces.spkilib: #%d: parsed s-exp differs " \
               "from constructed s-exp" % i
        enc1 = sx1.encode_canonical()
        enc2 = sx1.encode_base64()
        sx11 = sexp.parse(enc1)
        sx12 = sexp.parse(enc2)
        assert sx11 == sx12, "pisces.spkilib: s-exp parsing failed"
        assert sx11 == sx1, "pisces.spkilib: s-exp parsing failed"
        buf = str(sx1)
        if '\n' in buf:
            continue # parseText doesn't handle multi-line base64 data
        sx3 = sexp.parseText(buf)
        assert sx1 == sx3, "pisces.spkilib: parseText failed"
Ejemplo n.º 2
0
    def sexp(self):
	return parse(['ciphered-data', self.data])
Ejemplo n.º 3
0
 def sexp(self):
     return parse(['random', str(self.t), self.rand])
Ejemplo n.º 4
0
 def sexp(self):
     return parse(['error', self.msg])
Ejemplo n.º 5
0
    def sexp(self):
	return parse(['data', self.data, self.mac]) 
Ejemplo n.º 6
0
    def sexp(self):
	return parse(['finished', self.verify])
Ejemplo n.º 7
0
 def sexp(self):
     return parse(['close-notify'])
Ejemplo n.º 8
0
 def sexp(self):
     return parse(['client-key-exchange', self.cipher])
Ejemplo n.º 9
0
 def sexp(self):
     return parse(['certificate-verify', self.sig.sexp()])
Ejemplo n.º 10
0
 def sexp(self):
     return parse(['server-hello-done'])
Ejemplo n.º 11
0
 def sexp(self):
     return parse(['pre-master-secret', self.ver, self.rand.sexp()])
Ejemplo n.º 12
0
 def sexp(self):
     return parse(['certificate-request'])
Ejemplo n.º 13
0
 def sexp(self):
     return parse(['certificate', self.certs.sexp()])
Ejemplo n.º 14
0
 def sexp(self):
     return parse(['server-hello', self.ver,
                   object_to_sexp(self.rand), self.sessId])
Ejemplo n.º 15
0
 def sexp(self):
     return parse(['client-hello', self.ver,
                   object_to_sexp(self.rand)]) 
Ejemplo n.º 16
0
def parse(buf):
    return eval(sexp.parse(buf))