Swift
Swift
Sign a JWS with a Private Key
See more JSON Web Signatures (JWS) Examples
Demonstrates Jws.SetPrivateKey, which sets the private key used to create a signature. The example uses RS256 (RSASSA-PKCS1-v1_5 with SHA-256).
The file path is relative to the application's current working directory. An absolute path may also be used. Supply the path appropriate to your own environment.
Background. Public-key JWS signs with a private key so that anyone holding the corresponding public key can verify the signature.
Chilkat Swift Downloads
func chilkatTest() {
var success: Bool = false
let jws = CkoJws()!
// Protected header specifying RSASSA-PKCS1-v1_5 with SHA-256 (RS256).
let header = CkoJsonObject()!
header.updateString(jsonPath: "alg", value: "RS256")
success = jws.setProtectedHeader(index: 0, json: header)
if success == false {
print("\(jws.lastErrorText!)")
return
}
var bIncludeBom: Bool = false
success = jws.setPayload(payload: "This is the content to sign.", charset: "utf-8", includeBom: bIncludeBom)
if success == false {
print("\(jws.lastErrorText!)")
return
}
// The file path is relative to the application's current working directory. An absolute path
// may also be used. Supply the path appropriate to your own environment.
// Load the signer's private key and set it for signature 0.
let privKey = CkoPrivateKey()!
success = privKey.loadPemFile(path: "qa_data/signer_privkey.pem")
if success == false {
print("\(privKey.lastErrorText!)")
return
}
success = jws.setPrivateKey(index: 0, privKey: privKey)
if success == false {
print("\(jws.lastErrorText!)")
return
}
var jwsCompact: String? = jws.create()
if jws.lastMethodSuccess == false {
print("\(jws.lastErrorText!)")
return
}
print("\(jwsCompact!)")
}