Sample code for 30+ languages & platforms
Lua Requires Chilkat v10.0.0+

Apple Keychain - Create RSA Signature

See more Apple Keychain Examples

Using an RSA private key stored in the Apple Keychain, create a signature by signing the SHA-256 hash of the provided string, then return the signature encoded in Base64 format.

Chilkat Lua Downloads

Lua
local chilkat = require("chilkat")

-- This example requires the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.

local cert = chilkat.Cert.new()

-- On MacOS and iOS, the LoadByCommonName function will search the Apple Keychain for the matching certificate.

-- A digital certificate's Common Name (CN) is a field in the certificate that specifies the name of the entity the
-- certificate is issued to. It is often used to identify the domain name, hostname, or organization the certificate represents.

-- For example:
-- - In an SSL/TLS certificate for a website, the CN typically contains the domain name (e.g., "www.example.com").
-- - For certificates representing individuals or organizations, the CN might include the person's name or the organization's name.

-- The CN is part of the certificate's Subject field and is crucial for verifying that the certificate corresponds
-- to the intended entity, especially in SSL/TLS communications.

local success = cert:load_by_common_name("Example, Inc.")
if not success then
    print(cert.last_error_text)
    return
end

local rsa = chilkat.Rsa.new()
success = rsa:set_x509_cert(cert, true)
if not success then
    print(rsa.last_error_text)
    return
end

-- Generate an RSA signature by signing the SHA-256 hash of the provided string,
-- then return the signature encoded in Base64 format.
rsa.encoding_mode = "base64"
local sigBase64 = rsa:sign_string_enc("to be signed", "sha256")
if not rsa.last_method_success then
    print(rsa.last_error_text)
    return
end

print("RSA Signature:")
print(sigBase64)