Implemented By
Supported Methods
Description of Methods
SetPrivateKey(keyFileName as String) as Integer
Specify the private key to use for signing. The file name should specify a path, either in the package or a temp path.
Returns 1 if the key is valid, or 0 if the file does not contain a valid key, or -1 if the file was not found.
SetPublicKey(keyFileName as String) as Integer
Specify the public key to use for verification. The file name should specify a path, either in the package or a temp path.
Returns 1 if the key is valid, or 0 if the file does not contain a valid key, or -1 if the file was not found.
SetDigestAlgorithm(digestAlgorithm as String) as Boolean
Specify the digest algorithm to use for signing and verification. This should be an openssl string. Common digest algorithms are "sha1", "ripemd160", and "md5".
Returns true if the algorithm was set, false if the string was not recognized.
Sign(digest as Object) as Object
digest should be a roByteArray to be signed.
Returns a roByteArray containing the signature, or invalid if an error occurred. Errors will be printed in the BrightScript console. Some possible errors:
- digest is empty
- SetPrivateKey() was not yet called
- out of memory
- the digest could not be signed
Verify(digest as Object, signature as Object) as Integer
Verifies the given digest and signature. Both digest and signature should be roByteArrays.
Returns 1 if the signature matches. Errors:
- Returns -1 if SetPublicKey() was not yet called
- Returns -2 if digest is empty
- Returns -3 if there is not enough memory
- Returns 0 if the signature does not match
If the digest algorithm is not set (using SetDigestAlgorithm) before calling Verify(), the digest associated with the signature is not expected to be encapsulated. This would be equivalent to simply calling the openssl function RSA_public_decrypt(signature) and then comparing the result with the digest.