summaryrefslogtreecommitdiff
path: root/release/src/router/cyassl/swig/rsasign.py
blob: ad2e114f82051ec3bdcffe96d2279d0b109f239a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# file: rsasign.py

import cyassl 


# start Random Number Generator
rng = cyassl.GetRng()
if rng == None:
    print "Couldn't get an RNG"
    exit(-1)

# load RSA private key in DER format
key = cyassl.GetRsaPrivateKey("../certs/client-key.der")
if key == None:
    print "Couldn't load DER private key file"
    exit(-1)

# Make byte Arrays and fill input
signOutput = cyassl.byteArray(128)   # 128 allows 1024 bit private key
signStr    = cyassl.byteArray(25)    # input can't be larger then key size
                                     # 64 for 512 bit 128 for 1024 bit
cyassl.FillSignStr(signStr, "Everybody gets Friday off", 25)

# Do RSA Sign
signedSize = cyassl.RsaSSL_Sign(signStr, 25, signOutput, 128, key, rng) 

# Show output 
print "Signed Size = ", signedSize, " signed array = ", cyassl.cdata(signOutput, signedSize)

# let's verify this worked
signVerify = cyassl.byteArray(signedSize)
verifySize = cyassl.RsaSSL_Verify(signOutput, signedSize, signVerify, signedSize, key)

print "Verify Size = ", verifySize, " verify array = ", cyassl.cdata(signVerify, verifySize)