Sample code for 30+ languages & platforms
Dart

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 Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  final jws = CkJws();

  // Protected header specifying RSASSA-PKCS1-v1_5 with SHA-256 (RS256).
  final header = CkJsonObject();
  header.updateString('alg', 'RS256');
  try {
    jws.setProtectedHeader(0, header);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  final bIncludeBom = false;
  try {
    jws.setPayload('This is the content to sign.', 'utf-8', bIncludeBom);
  } on ChilkatException catch (e) {
    print(e.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.
  final privKey = CkPrivateKey();
  try {
    privKey.loadPemFile('qa_data/signer_privkey.pem');
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  try {
    jws.setPrivateKey(0, privKey);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  final String jwsCompact;
  try {
    jwsCompact = jws.createJws();
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  print(jwsCompact);
}