Sample code for 30+ languages & platforms
SQL Server

Set the JWS Protected Header

See more JSON Web Signatures (JWS) Examples

Demonstrates Jws.SetProtectedHeader, which sets the integrity-protected header for a signer from a JsonObject. The header specifies the signature algorithm (alg).

Background. The protected header is covered by the signature, so it cannot be altered without invalidating the JWS. It is configured before creating the JWS.

Chilkat SQL Server Downloads

SQL Server
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
    DECLARE @hr int
    DECLARE @sTmp0 nvarchar(4000)
    DECLARE @success int
    SELECT @success = 0

    DECLARE @jws int
    EXEC @hr = sp_OACreate 'Chilkat.Jws', @jws OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    --  Build the JWS protected header.  The "alg" member names the signature algorithm.
    DECLARE @header int
    EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @header OUT

    EXEC sp_OAMethod @header, 'UpdateString', @success OUT, 'alg', 'HS256'

    --  Set the protected header for signer index 0.  The protected header is integrity-protected: it is
    --  covered by the signature.
    EXEC sp_OAMethod @jws, 'SetProtectedHeader', @success OUT, 0, @header
    IF @success = 0
      BEGIN
        EXEC sp_OAGetProperty @jws, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @jws
        EXEC @hr = sp_OADestroy @header
        RETURN
      END

    PRINT 'Protected header set.'

    EXEC @hr = sp_OADestroy @jws
    EXEC @hr = sp_OADestroy @header


END
GO