S2iEvolution.SingpassApi 8.0.142

SingpassApi

Library to use Singpass in the application.

Installation

Usage

// Create a SingpassService
SingpassConfig config = ConfigLoader<SingpassConfig>.LoadConfig("singpass.json");
SingpassService service = new SingpassService(config);

Generate EC keys for jwks.json

These lines generate 1 JWKS with the private and public key pair. Please separate them in different files.

(var priv, var pub) = JWTUtils.CreateJWKPair(JWTUtils.CreateNewECDsa(), "sig");
var jwkEC =JWTUtils.CreateNewJWKSEC([priv,pub]);

string jwkStringEC = JsonConvert.SerializeObject(jwkEC);
Console.WriteLine($"JWKEC: {jwkStringEC}");

Generate EC keys and store them directly in jwks.json

// Create the service with dedicated config
SingpassConfig config = ConfigLoader<SingpassConfig>.LoadConfig("singpass.json");
SingpassService service = new SingpassService(config);

if (service is not null){
    // Create sig key
    (var priv, var pub) = JWTUtils.CreateJWKPair(
        JWTUtils.CreateNewECDsa(),
        "sig"
    );
    // Create enc key
    (var privE, var pubE) = JWTUtils.CreateJWKPair(
        JWTUtils.CreateNewECDsa(),
        "enc"
    );
    // Create or append the keys to the dedicated files:
    // jwks.json for public keys
    // jwks.private.json for private keys
    // Keys kid are generated to be complient to singpass notation
    service.AppendKeyPairToFile(priv, pub, "../Config");
    service.AppendKeyPairToFile(privE, pubE, "../Config");
}

Get singpass key set as JWKSEC

The endpoint must be set in the config file first or it will fail.

JWKSEC? jwks = await service.GetSingpassJWKSECAsync();

No packages depend on S2iEvolution.SingpassApi.

Version Downloads Last updated
8.0.142 5 07/10/2026
8.0.141 12 06/30/2026
8.0.140 3 06/30/2026
8.0.139 3 06/30/2026
8.0.138 16 05/12/2026
8.0.137 8 05/07/2026
8.0.136 6 05/07/2026
8.0.135 12 04/21/2026
8.0.134 5 04/21/2026
8.0.133 5 04/21/2026
8.0.132 8 04/20/2026
8.0.131 9 04/14/2026
8.0.130 6 04/14/2026
8.0.129 7 04/10/2026
8.0.128 7 04/09/2026
8.0.127 6 04/08/2026
8.0.126 6 04/07/2026
8.0.125 6 04/07/2026
8.0.124 6 04/02/2026
8.0.123 6 04/02/2026
8.0.122 6 03/31/2026
8.0.121 4 03/31/2026
8.0.120 5 03/31/2026
8.0.119 5 03/31/2026
8.0.118 5 03/31/2026
8.0.117 6 03/31/2026
8.0.116 5 03/30/2026
8.0.115 14 03/17/2026
8.0.114 9 03/10/2026
8.0.113 7 03/10/2026
8.0.112 7 03/10/2026
8.0.111 7 03/09/2026
8.0.110 7 03/09/2026
8.0.109 11 02/26/2026
8.0.108 7 02/26/2026
8.0.107 8 02/26/2026
8.0.106 7 02/26/2026
8.0.105 7 02/26/2026
8.0.104 9 02/24/2026
8.0.103 7 02/24/2026
8.0.102 7 02/24/2026
8.0.101 7 02/24/2026
8.0.100 7 02/24/2026
8.0.99 6 02/24/2026
8.0.97 20 12/22/2025
8.0.96 8 12/22/2025
8.0.95 9 12/18/2025
8.0.94 8 12/18/2025
8.0.93 8 12/18/2025
8.0.92 10 12/16/2025
8.0.91 13 12/08/2025
8.0.90 14 11/25/2025
8.0.89 12 11/24/2025
8.0.88 11 11/21/2025
8.0.87 13 11/20/2025
8.0.86 12 11/18/2025
8.0.85 8 11/18/2025
8.0.84 8 11/18/2025
8.0.83 25 11/13/2025
8.0.82 9 11/13/2025
8.0.80 13 11/10/2025
8.0.79 7 11/07/2025
8.0.78 9 11/07/2025
8.0.77 7 11/07/2025
8.0.76 10 11/06/2025
8.0.75 10 11/06/2025
8.0.74 9 11/06/2025
8.0.73 9 11/06/2025
8.0.72 8 11/06/2025
8.0.71 7 11/06/2025
8.0.69 9 11/03/2025
8.0.68 9 11/03/2025
8.0.67 8 11/03/2025
8.0.66 9 11/03/2025
8.0.65 13 10/28/2025
8.0.64 9 10/27/2025
8.0.63 11 10/27/2025
8.0.62 9 10/27/2025
8.0.61 8 10/27/2025
8.0.60 8 10/27/2025
8.0.59 8 10/27/2025
8.0.58 8 10/27/2025
8.0.57 9 10/27/2025
8.0.56 9 10/27/2025
8.0.55 10 10/27/2025
8.0.54 7 10/27/2025
8.0.53 9 10/27/2025
8.0.52 9 10/27/2025
8.0.51 8 10/27/2025
8.0.50 9 10/27/2025
8.0.49 8 10/27/2025
8.0.48 9 10/27/2025
8.0.47 8 10/24/2025
8.0.46 12 10/21/2025
8.0.45 8 10/21/2025
8.0.44 8 10/21/2025
8.0.43 7 10/21/2025
8.0.42 14 02/03/2025
8.0.41 12 02/03/2025
8.0.40 13 02/03/2025
8.0.39 13 02/03/2025
8.0.38 14 02/03/2025
8.0.37 13 02/03/2025
8.0.36 14 01/30/2025
8.0.35 13 01/30/2025
8.0.34 15 01/30/2025
8.0.33 13 01/30/2025
8.0.32 13 01/30/2025
8.0.31 15 01/30/2025
8.0.30 14 01/30/2025
8.0.29 14 01/30/2025
8.0.28 15 01/30/2025
8.0.27 15 01/30/2025
8.0.26 16 01/30/2025
8.0.25 13 01/30/2025
8.0.24 12 01/30/2025
8.0.22 14 01/30/2025
8.0.21 15 01/30/2025
8.0.20 13 01/30/2025
8.0.19 14 01/30/2025
8.0.18 12 01/30/2025
8.0.17 14 01/30/2025
8.0.16 14 01/28/2025
8.0.15 14 01/28/2025
8.0.14 13 01/28/2025
8.0.13 13 01/28/2025
8.0.12 14 01/28/2025
8.0.11 14 01/28/2025
8.0.10 14 01/28/2025
8.0.9 16 01/28/2025
8.0.8 13 01/23/2025
8.0.7 14 01/23/2025
8.0.6 14 01/21/2025
8.0.5 13 01/21/2025
8.0.4 13 01/21/2025
8.0.3 13 01/21/2025
8.0.2 12 01/21/2025
8.0.1 13 01/21/2025
8.0.0 14 01/21/2025