diff --git a/source/JSONWebToken-Core.package/JWARSASHA256.class/README.md b/source/JSONWebToken-Core.package/JWARSASHA256.class/README.md new file mode 100644 index 0000000..e69de29 diff --git a/source/JSONWebToken-Core.package/JWARSASHA256.class/class/parameterValue.st b/source/JSONWebToken-Core.package/JWARSASHA256.class/class/parameterValue.st new file mode 100644 index 0000000..0642aed --- /dev/null +++ b/source/JSONWebToken-Core.package/JWARSASHA256.class/class/parameterValue.st @@ -0,0 +1,3 @@ +accessing +parameterValue + ^ 'RS256' \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWARSASHA256.class/class/signMessage.withKey..st b/source/JSONWebToken-Core.package/JWARSASHA256.class/class/signMessage.withKey..st new file mode 100644 index 0000000..c48d300 --- /dev/null +++ b/source/JSONWebToken-Core.package/JWARSASHA256.class/class/signMessage.withKey..st @@ -0,0 +1,3 @@ +sign +signMessage: aString withKey: anObject + self notYetImplemented \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWARSASHA256.class/properties.json b/source/JSONWebToken-Core.package/JWARSASHA256.class/properties.json new file mode 100644 index 0000000..4bda1d9 --- /dev/null +++ b/source/JSONWebToken-Core.package/JWARSASHA256.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "", + "super" : "JsonWebAlgorithm", + "category" : "JSONWebToken-Core-JSONWebToken-Core", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "JWARSASHA256", + "type" : "normal" +} \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWSCompactSerializer.class/instance/materialize..st b/source/JSONWebToken-Core.package/JWSCompactSerializer.class/instance/materialize..st deleted file mode 100644 index 8f347b4..0000000 --- a/source/JSONWebToken-Core.package/JWSCompactSerializer.class/instance/materialize..st +++ /dev/null @@ -1,7 +0,0 @@ -reading -materialize: aString - | parts jws | - parts := $. split: aString. - jws := JWSHeader fromJson: (parts at: 1) base64Decoded. - self halt. - \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWSCompactSerializer.class/instance/materialize.key..st b/source/JSONWebToken-Core.package/JWSCompactSerializer.class/instance/materialize.key..st index 144b6ae..1f5ed43 100644 --- a/source/JSONWebToken-Core.package/JWSCompactSerializer.class/instance/materialize.key..st +++ b/source/JSONWebToken-Core.package/JWSCompactSerializer.class/instance/materialize.key..st @@ -1,11 +1,3 @@ reading materialize: aString key: aKeyString - | parts header jws | - parts := $. split: aString. - header := JWSHeader fromJson: (parts at: 1) base64Decoded. - jws := JsonWebSignature new - key: aKeyString; - setProtectedHeader: header. - ((jws signatureFor: ($. join: { parts first . parts second })) = parts third base64Decoded asByteArray) ifFalse: [ - Error signal: 'signature does not match' ]. - ^ jws payload: (JWTClaimsSet fromJson: parts second base64Decoded) \ No newline at end of file + ^ self materialize: aString key: aKeyString checkSignature: true \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWSCompactSerializer.class/instance/materialize.key.checkSignature..st b/source/JSONWebToken-Core.package/JWSCompactSerializer.class/instance/materialize.key.checkSignature..st new file mode 100644 index 0000000..c85ef9a --- /dev/null +++ b/source/JSONWebToken-Core.package/JWSCompactSerializer.class/instance/materialize.key.checkSignature..st @@ -0,0 +1,11 @@ +reading +materialize: aString key: aKeyString checkSignature: checkSignature + | parts header jws | + parts := $. split: aString. + header := JWSHeader fromJson: (parts at: 1) base64Decoded. + jws := JsonWebSignature new + key: aKeyString; + setProtectedHeader: header. + checkSignature ifTrue: [ + jws checkSignature: parts ]. + ^ jws payload: (JWTClaimsSet fromJson: parts second base64Decoded) \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JsonWebSignature.class/class/materializeCompact.key..st b/source/JSONWebToken-Core.package/JsonWebSignature.class/class/materializeCompact.key..st index 8405185..6d1eef3 100644 --- a/source/JSONWebToken-Core.package/JsonWebSignature.class/class/materializeCompact.key..st +++ b/source/JSONWebToken-Core.package/JsonWebSignature.class/class/materializeCompact.key..st @@ -1,4 +1,4 @@ materializing materializeCompact: aString key: aKeyString - ^ JWSCompactSerializer new materialize: aString key: aKeyString + ^ self materializeCompact: aString key: aKeyString checkSignature: true \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JsonWebSignature.class/class/materializeCompact.key.checkSignature..st b/source/JSONWebToken-Core.package/JsonWebSignature.class/class/materializeCompact.key.checkSignature..st new file mode 100644 index 0000000..34db4b8 --- /dev/null +++ b/source/JSONWebToken-Core.package/JsonWebSignature.class/class/materializeCompact.key.checkSignature..st @@ -0,0 +1,4 @@ +materializing +materializeCompact: aString key: aKeyString checkSignature: checkSignature + ^ JWSCompactSerializer new materialize: aString key: aKeyString checkSignature: checkSignature + \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/algorithm.st b/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/algorithm.st new file mode 100644 index 0000000..cf71a93 --- /dev/null +++ b/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/algorithm.st @@ -0,0 +1,3 @@ +accessing +algorithm + ^ self protectedHeader algorithm \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/checkSignature..st b/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/checkSignature..st new file mode 100644 index 0000000..c5e9771 --- /dev/null +++ b/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/checkSignature..st @@ -0,0 +1,4 @@ +signature +checkSignature: parts + ((self signatureFor: ($. join: { parts first . parts second })) = parts third base64Decoded asByteArray) ifFalse: [ + Error signal: 'signature does not match' ].