From fdedcbb737852b8a6ff33a5390f4422d38ff8515 Mon Sep 17 00:00:00 2001 From: Norbert Hartl Date: Mon, 18 Aug 2025 21:06:23 +0200 Subject: [PATCH] sources migrated --- source/.filetree | 2 - source/.properties | 2 +- .../BaselineOfJSONWebToken.package/.filetree | 5 - .../BaselineOfJSONWebToken.class/README.md | 0 .../properties.json | 11 - .../monticello.meta/categories.st | 1 - .../monticello.meta/initializers.st | 0 .../monticello.meta/package | 1 - .../properties.json | 1 - .../BaselineOfJSONWebToken.class.st} | 13 +- source/BaselineOfJSONWebToken/package.st | 1 + .../JSONWebToken-Core-Tests.package/.filetree | 5 - .../Base64UrlEncoderTest.class/README.md | 1 - .../instance/setUp.st | 5 - .../instance/testComparisonAgainstBase64.st | 6 - .../instance/testDecode.st | 4 - .../instance/testEncode.st | 4 - .../properties.json | 13 -- .../JSONWebTokenTest.class/README.md | 1 - .../instance/simpleJsonWebSignature.st | 7 - .../instance/simpleTokenString.st | 3 - .../instance/testDecodingThreeParts.st | 8 - .../instance/testEncoding.st | 23 -- .../instance/testPadding.st | 8 - .../instance/testRoundtrip.st | 15 -- .../instance/testUnsecuredJWT.st | 15 -- .../JSONWebTokenTest.class/properties.json | 11 - .../monticello.meta/categories.st | 1 - .../monticello.meta/initializers.st | 0 .../monticello.meta/package | 1 - .../properties.json | 1 - .../Base64UrlEncoderTest.class.st | 39 ++++ .../JSONWebTokenTest.class.st | 103 +++++++++ source/JSONWebToken-Core-Tests/package.st | 1 + source/JSONWebToken-Core.package/.filetree | 5 - .../Base64UrlEncoder.class/README.md | 5 - .../class/initialize.st | 4 - .../instance/decode..st | 4 - .../instance/encode..st | 4 - .../instance/initialize.st | 6 - .../Base64UrlEncoder.class/properties.json | 15 -- .../JOSEHeader.class/README.md | 1 - .../JOSEHeader.class/class/neoJsonMapping..st | 7 - .../JOSEHeader.class/instance/^equals.st | 3 - .../instance/hasSameElements..st | 3 - .../JOSEHeader.class/instance/hash.st | 3 - .../JOSEHeader.class/instance/typ..st | 3 - .../JOSEHeader.class/instance/typ.st | 3 - .../JOSEHeader.class/instance/type..st | 3 - .../JOSEHeader.class/instance/type.st | 3 - .../JOSEHeader.class/properties.json | 13 -- .../JWAHMACSHA256.class/README.md | 1 - .../class/checkSignatureOfParts.withKey..st | 10 - .../class/parameterValue.st | 3 - .../class/signMessage.withKey..st | 5 - .../JWAHMACSHA256.class/properties.json | 11 - .../JWANone.class/README.md | 1 - .../class/checkSignatureOfParts.withKey..st | 3 - .../JWANone.class/class/parameterValue.st | 3 - .../class/signMessage.withKey..st | 3 - .../JWANone.class/properties.json | 11 - .../JWCryptoHeader.class/README.md | 1 - .../JWCryptoHeader.class/instance/alg..st | 3 - .../JWCryptoHeader.class/instance/alg.st | 3 - .../instance/algorithm..st | 4 - .../instance/algorithm.st | 3 - .../JWCryptoHeader.class/instance/asJson.st | 3 - .../instance/contentType..st | 3 - .../instance/initialize.st | 4 - .../instance/registeredHeaders.st | 3 - .../instance/setProperties..st | 5 - .../JWCryptoHeader.class/properties.json | 13 -- .../JWEHeader.class/README.md | 1 - .../JWEHeader.class/properties.json | 11 - .../JWSCompactSerializer.class/README.md | 2 - .../instance/materialize.key..st | 3 - .../materialize.key.checkSignature..st | 14 -- .../instance/serialize..st | 12 - .../instance/writeHeader..st | 3 - .../instance/writePayload..st | 3 - .../properties.json | 11 - .../JWSHeader.class/README.md | 1 - .../JWSHeader.class/class/fromJson..st | 4 - .../JWSHeader.class/instance/isEqualTo..st | 3 - .../JWSHeader.class/properties.json | 11 - .../JWSInvalidTokenFormat.class/README.md | 0 .../properties.json | 11 - .../JWSSerializer.class/README.md | 1 - .../class/base64UrlDecoded..st | 7 - .../class/base64UrlEncoded..st | 7 - .../JWSSerializer.class/class/toJson..st | 3 - .../instance/initialize.st | 4 - .../JWSSerializer.class/properties.json | 13 -- .../JWTClaimsSet.class/README.md | 1 - .../JWTClaimsSet.class/class/fromJson..st | 4 - .../JWTClaimsSet.class/instance/asJson.st | 3 - .../JWTClaimsSet.class/instance/at..st | 3 - .../JWTClaimsSet.class/instance/at.put..st | 3 - .../JWTClaimsSet.class/instance/aud..st | 3 - .../JWTClaimsSet.class/instance/aud.st | 3 - .../JWTClaimsSet.class/instance/audiences..st | 3 - .../JWTClaimsSet.class/instance/audiences.st | 3 - .../JWTClaimsSet.class/instance/authTime..st | 3 - .../JWTClaimsSet.class/instance/authTime.st | 3 - .../authenticationContextClassReference..st | 3 - .../authenticationContextClassReference.st | 3 - .../authenticationMethodsReference..st | 3 - .../authenticationMethodsReference.st | 3 - .../instance/authorizedParty..st | 3 - .../instance/authorizedParty.st | 3 - .../JWTClaimsSet.class/instance/claims.st | 3 - .../JWTClaimsSet.class/instance/exp..st | 3 - .../JWTClaimsSet.class/instance/exp.st | 3 - .../instance/expirationTime..st | 3 - .../instance/expirationTime.st | 3 - .../instance/hasSameClaims..st | 3 - .../instance/hasSameElements..st | 3 - .../JWTClaimsSet.class/instance/iat..st | 3 - .../JWTClaimsSet.class/instance/iat.st | 3 - .../JWTClaimsSet.class/instance/initialize.st | 4 - .../JWTClaimsSet.class/instance/iss..st | 3 - .../JWTClaimsSet.class/instance/iss.st | 3 - .../JWTClaimsSet.class/instance/issuedAt..st | 3 - .../JWTClaimsSet.class/instance/issuedAt.st | 3 - .../JWTClaimsSet.class/instance/issuer..st | 3 - .../JWTClaimsSet.class/instance/issuer.st | 3 - .../JWTClaimsSet.class/instance/mimeType.st | 3 - .../JWTClaimsSet.class/instance/nonce..st | 3 - .../JWTClaimsSet.class/instance/nonce.st | 3 - .../JWTClaimsSet.class/instance/setClaims..st | 3 - .../JWTClaimsSet.class/instance/sub..st | 3 - .../JWTClaimsSet.class/instance/sub.st | 3 - .../JWTClaimsSet.class/instance/subject..st | 3 - .../JWTClaimsSet.class/instance/subject.st | 3 - .../JWTClaimsSet.class/properties.json | 13 -- .../JWTHeader.class/README.md | 1 - .../JWTHeader.class/properties.json | 11 - .../JsonWebAlgorithm.class/README.md | 1 - .../class/checkSignature.withKey..st | 8 - .../class/checkSignatureOfParts.withKey..st | 3 - .../class/isAbstract.st | 4 - .../JsonWebAlgorithm.class/class/named..st | 4 - .../class/parameterValue.st | 3 - .../JsonWebAlgorithm.class/properties.json | 11 - .../JsonWebSignature.class/README.md | 1 - .../class/materializeCompact.key..st | 4 - .../materializeCompact.key.checkSignature..st | 4 - .../instance/^equals.st | 4 - .../instance/algorithm..st | 3 - .../instance/algorithm.st | 3 - .../instance/algorithmName..st | 3 - .../instance/base64UrlDecoded..st | 4 - .../instance/checkSignature..st | 10 - .../instance/compactSerialized.st | 3 - .../instance/hasSameHeader..st | 3 - .../instance/hasSamePayload..st | 4 - .../instance/hasSameProtectedHeader..st | 4 - .../JsonWebSignature.class/instance/hash.st | 3 - .../JsonWebSignature.class/instance/header.st | 4 - .../instance/headerClass.st | 3 - .../JsonWebSignature.class/instance/key..st | 3 - .../instance/payload..st | 3 - .../instance/payload.st | 3 - .../instance/protectedHeader.st | 4 - .../instance/setProtectedHeader..st | 3 - .../instance/signatureFor..st | 4 - .../instance/writePayloadOn..st | 3 - .../instance/writeProtectedHeaderOn..st | 3 - .../JsonWebSignature.class/properties.json | 15 -- .../String.extension/properties.json | 3 - .../monticello.meta/categories.st | 5 - .../monticello.meta/initializers.st | 0 .../monticello.meta/package | 1 - .../JSONWebToken-Core.package/properties.json | 1 - .../Base64UrlEncoder.class.st | 47 ++++ source/JSONWebToken-Core/JOSEHeader.class.st | 57 +++++ .../JSONWebToken-Core/JWAHMACSHA256.class.st | 34 +++ source/JSONWebToken-Core/JWANone.class.st | 25 ++ .../JSONWebToken-Core/JWCryptoHeader.class.st | 62 +++++ source/JSONWebToken-Core/JWEHeader.class.st | 10 + .../JWSCompactSerializer.class.st | 58 +++++ source/JSONWebToken-Core/JWSHeader.class.st | 21 ++ .../JWSInvalidTokenFormat.class.st | 7 + .../JSONWebToken-Core/JWSSerializer.class.st | 42 ++++ .../JSONWebToken-Core/JWTClaimsSet.class.st | 215 ++++++++++++++++++ source/JSONWebToken-Core/JWTHeader.class.st | 10 + .../JsonWebAlgorithm.class.st | 42 ++++ .../JsonWebSignature.class.st | 148 ++++++++++++ .../String.extension.st} | 9 +- source/JSONWebToken-Core/package.st | 1 + .../.filetree | 5 - .../JSONWebTokenOpenSSLTest.class/README.md | 0 .../properties.json | 11 - .../monticello.meta/categories.st | 1 - .../monticello.meta/initializers.st | 0 .../monticello.meta/package | 1 - .../properties.json | 1 - .../JSONWebTokenOpenSSLTest.class.st} | 14 +- source/JSONWebToken-OpenSSL-Tests/package.st | 1 + source/JSONWebToken-OpenSSL.package/.filetree | 5 - .../JWARSASHA256.class/README.md | 1 - .../class/parameterValue.st | 3 - .../class/signMessage.withKey..st | 8 - .../JWARSASHA256.class/properties.json | 11 - .../monticello.meta/categories.st | 1 - .../monticello.meta/initializers.st | 0 .../monticello.meta/package | 1 - .../properties.json | 1 - .../JWARSASHA256.class.st} | 32 ++- source/JSONWebToken-OpenSSL/package.st | 1 + 210 files changed, 983 insertions(+), 814 deletions(-) delete mode 100644 source/.filetree delete mode 100644 source/BaselineOfJSONWebToken.package/.filetree delete mode 100644 source/BaselineOfJSONWebToken.package/BaselineOfJSONWebToken.class/README.md delete mode 100644 source/BaselineOfJSONWebToken.package/BaselineOfJSONWebToken.class/properties.json delete mode 100644 source/BaselineOfJSONWebToken.package/monticello.meta/categories.st delete mode 100644 source/BaselineOfJSONWebToken.package/monticello.meta/initializers.st delete mode 100644 source/BaselineOfJSONWebToken.package/monticello.meta/package delete mode 100644 source/BaselineOfJSONWebToken.package/properties.json rename source/{BaselineOfJSONWebToken.package/BaselineOfJSONWebToken.class/instance/baseline..st => BaselineOfJSONWebToken/BaselineOfJSONWebToken.class.st} (79%) create mode 100644 source/BaselineOfJSONWebToken/package.st delete mode 100644 source/JSONWebToken-Core-Tests.package/.filetree delete mode 100644 source/JSONWebToken-Core-Tests.package/Base64UrlEncoderTest.class/README.md delete mode 100644 source/JSONWebToken-Core-Tests.package/Base64UrlEncoderTest.class/instance/setUp.st delete mode 100644 source/JSONWebToken-Core-Tests.package/Base64UrlEncoderTest.class/instance/testComparisonAgainstBase64.st delete mode 100644 source/JSONWebToken-Core-Tests.package/Base64UrlEncoderTest.class/instance/testDecode.st delete mode 100644 source/JSONWebToken-Core-Tests.package/Base64UrlEncoderTest.class/instance/testEncode.st delete mode 100644 source/JSONWebToken-Core-Tests.package/Base64UrlEncoderTest.class/properties.json delete mode 100644 source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/README.md delete mode 100644 source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/instance/simpleJsonWebSignature.st delete mode 100644 source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/instance/simpleTokenString.st delete mode 100644 source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/instance/testDecodingThreeParts.st delete mode 100644 source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/instance/testEncoding.st delete mode 100644 source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/instance/testPadding.st delete mode 100644 source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/instance/testRoundtrip.st delete mode 100644 source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/instance/testUnsecuredJWT.st delete mode 100644 source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/properties.json delete mode 100644 source/JSONWebToken-Core-Tests.package/monticello.meta/categories.st delete mode 100644 source/JSONWebToken-Core-Tests.package/monticello.meta/initializers.st delete mode 100644 source/JSONWebToken-Core-Tests.package/monticello.meta/package delete mode 100644 source/JSONWebToken-Core-Tests.package/properties.json create mode 100644 source/JSONWebToken-Core-Tests/Base64UrlEncoderTest.class.st create mode 100644 source/JSONWebToken-Core-Tests/JSONWebTokenTest.class.st create mode 100644 source/JSONWebToken-Core-Tests/package.st delete mode 100644 source/JSONWebToken-Core.package/.filetree delete mode 100644 source/JSONWebToken-Core.package/Base64UrlEncoder.class/README.md delete mode 100644 source/JSONWebToken-Core.package/Base64UrlEncoder.class/class/initialize.st delete mode 100644 source/JSONWebToken-Core.package/Base64UrlEncoder.class/instance/decode..st delete mode 100644 source/JSONWebToken-Core.package/Base64UrlEncoder.class/instance/encode..st delete mode 100644 source/JSONWebToken-Core.package/Base64UrlEncoder.class/instance/initialize.st delete mode 100644 source/JSONWebToken-Core.package/Base64UrlEncoder.class/properties.json delete mode 100644 source/JSONWebToken-Core.package/JOSEHeader.class/README.md delete mode 100644 source/JSONWebToken-Core.package/JOSEHeader.class/class/neoJsonMapping..st delete mode 100644 source/JSONWebToken-Core.package/JOSEHeader.class/instance/^equals.st delete mode 100644 source/JSONWebToken-Core.package/JOSEHeader.class/instance/hasSameElements..st delete mode 100644 source/JSONWebToken-Core.package/JOSEHeader.class/instance/hash.st delete mode 100644 source/JSONWebToken-Core.package/JOSEHeader.class/instance/typ..st delete mode 100644 source/JSONWebToken-Core.package/JOSEHeader.class/instance/typ.st delete mode 100644 source/JSONWebToken-Core.package/JOSEHeader.class/instance/type..st delete mode 100644 source/JSONWebToken-Core.package/JOSEHeader.class/instance/type.st delete mode 100644 source/JSONWebToken-Core.package/JOSEHeader.class/properties.json delete mode 100644 source/JSONWebToken-Core.package/JWAHMACSHA256.class/README.md delete mode 100644 source/JSONWebToken-Core.package/JWAHMACSHA256.class/class/checkSignatureOfParts.withKey..st delete mode 100644 source/JSONWebToken-Core.package/JWAHMACSHA256.class/class/parameterValue.st delete mode 100644 source/JSONWebToken-Core.package/JWAHMACSHA256.class/class/signMessage.withKey..st delete mode 100644 source/JSONWebToken-Core.package/JWAHMACSHA256.class/properties.json delete mode 100644 source/JSONWebToken-Core.package/JWANone.class/README.md delete mode 100644 source/JSONWebToken-Core.package/JWANone.class/class/checkSignatureOfParts.withKey..st delete mode 100644 source/JSONWebToken-Core.package/JWANone.class/class/parameterValue.st delete mode 100644 source/JSONWebToken-Core.package/JWANone.class/class/signMessage.withKey..st delete mode 100644 source/JSONWebToken-Core.package/JWANone.class/properties.json delete mode 100644 source/JSONWebToken-Core.package/JWCryptoHeader.class/README.md delete mode 100644 source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/alg..st delete mode 100644 source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/alg.st delete mode 100644 source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/algorithm..st delete mode 100644 source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/algorithm.st delete mode 100644 source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/asJson.st delete mode 100644 source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/contentType..st delete mode 100644 source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/initialize.st delete mode 100644 source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/registeredHeaders.st delete mode 100644 source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/setProperties..st delete mode 100644 source/JSONWebToken-Core.package/JWCryptoHeader.class/properties.json delete mode 100644 source/JSONWebToken-Core.package/JWEHeader.class/README.md delete mode 100644 source/JSONWebToken-Core.package/JWEHeader.class/properties.json delete mode 100644 source/JSONWebToken-Core.package/JWSCompactSerializer.class/README.md delete mode 100644 source/JSONWebToken-Core.package/JWSCompactSerializer.class/instance/materialize.key..st delete mode 100644 source/JSONWebToken-Core.package/JWSCompactSerializer.class/instance/materialize.key.checkSignature..st delete mode 100644 source/JSONWebToken-Core.package/JWSCompactSerializer.class/instance/serialize..st delete mode 100644 source/JSONWebToken-Core.package/JWSCompactSerializer.class/instance/writeHeader..st delete mode 100644 source/JSONWebToken-Core.package/JWSCompactSerializer.class/instance/writePayload..st delete mode 100644 source/JSONWebToken-Core.package/JWSCompactSerializer.class/properties.json delete mode 100644 source/JSONWebToken-Core.package/JWSHeader.class/README.md delete mode 100644 source/JSONWebToken-Core.package/JWSHeader.class/class/fromJson..st delete mode 100644 source/JSONWebToken-Core.package/JWSHeader.class/instance/isEqualTo..st delete mode 100644 source/JSONWebToken-Core.package/JWSHeader.class/properties.json delete mode 100644 source/JSONWebToken-Core.package/JWSInvalidTokenFormat.class/README.md delete mode 100644 source/JSONWebToken-Core.package/JWSInvalidTokenFormat.class/properties.json delete mode 100644 source/JSONWebToken-Core.package/JWSSerializer.class/README.md delete mode 100644 source/JSONWebToken-Core.package/JWSSerializer.class/class/base64UrlDecoded..st delete mode 100644 source/JSONWebToken-Core.package/JWSSerializer.class/class/base64UrlEncoded..st delete mode 100644 source/JSONWebToken-Core.package/JWSSerializer.class/class/toJson..st delete mode 100644 source/JSONWebToken-Core.package/JWSSerializer.class/instance/initialize.st delete mode 100644 source/JSONWebToken-Core.package/JWSSerializer.class/properties.json delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/README.md delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/class/fromJson..st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/asJson.st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/at..st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/at.put..st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/aud..st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/aud.st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/audiences..st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/audiences.st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/authTime..st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/authTime.st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/authenticationContextClassReference..st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/authenticationContextClassReference.st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/authenticationMethodsReference..st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/authenticationMethodsReference.st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/authorizedParty..st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/authorizedParty.st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/claims.st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/exp..st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/exp.st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/expirationTime..st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/expirationTime.st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/hasSameClaims..st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/hasSameElements..st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/iat..st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/iat.st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/initialize.st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/iss..st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/iss.st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/issuedAt..st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/issuedAt.st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/issuer..st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/issuer.st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/mimeType.st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/nonce..st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/nonce.st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/setClaims..st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/sub..st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/sub.st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/subject..st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/subject.st delete mode 100644 source/JSONWebToken-Core.package/JWTClaimsSet.class/properties.json delete mode 100644 source/JSONWebToken-Core.package/JWTHeader.class/README.md delete mode 100644 source/JSONWebToken-Core.package/JWTHeader.class/properties.json delete mode 100644 source/JSONWebToken-Core.package/JsonWebAlgorithm.class/README.md delete mode 100644 source/JSONWebToken-Core.package/JsonWebAlgorithm.class/class/checkSignature.withKey..st delete mode 100644 source/JSONWebToken-Core.package/JsonWebAlgorithm.class/class/checkSignatureOfParts.withKey..st delete mode 100644 source/JSONWebToken-Core.package/JsonWebAlgorithm.class/class/isAbstract.st delete mode 100644 source/JSONWebToken-Core.package/JsonWebAlgorithm.class/class/named..st delete mode 100644 source/JSONWebToken-Core.package/JsonWebAlgorithm.class/class/parameterValue.st delete mode 100644 source/JSONWebToken-Core.package/JsonWebAlgorithm.class/properties.json delete mode 100644 source/JSONWebToken-Core.package/JsonWebSignature.class/README.md delete mode 100644 source/JSONWebToken-Core.package/JsonWebSignature.class/class/materializeCompact.key..st delete mode 100644 source/JSONWebToken-Core.package/JsonWebSignature.class/class/materializeCompact.key.checkSignature..st delete mode 100644 source/JSONWebToken-Core.package/JsonWebSignature.class/instance/^equals.st delete mode 100644 source/JSONWebToken-Core.package/JsonWebSignature.class/instance/algorithm..st delete mode 100644 source/JSONWebToken-Core.package/JsonWebSignature.class/instance/algorithm.st delete mode 100644 source/JSONWebToken-Core.package/JsonWebSignature.class/instance/algorithmName..st delete mode 100644 source/JSONWebToken-Core.package/JsonWebSignature.class/instance/base64UrlDecoded..st delete mode 100644 source/JSONWebToken-Core.package/JsonWebSignature.class/instance/checkSignature..st delete mode 100644 source/JSONWebToken-Core.package/JsonWebSignature.class/instance/compactSerialized.st delete mode 100644 source/JSONWebToken-Core.package/JsonWebSignature.class/instance/hasSameHeader..st delete mode 100644 source/JSONWebToken-Core.package/JsonWebSignature.class/instance/hasSamePayload..st delete mode 100644 source/JSONWebToken-Core.package/JsonWebSignature.class/instance/hasSameProtectedHeader..st delete mode 100644 source/JSONWebToken-Core.package/JsonWebSignature.class/instance/hash.st delete mode 100644 source/JSONWebToken-Core.package/JsonWebSignature.class/instance/header.st delete mode 100644 source/JSONWebToken-Core.package/JsonWebSignature.class/instance/headerClass.st delete mode 100644 source/JSONWebToken-Core.package/JsonWebSignature.class/instance/key..st delete mode 100644 source/JSONWebToken-Core.package/JsonWebSignature.class/instance/payload..st delete mode 100644 source/JSONWebToken-Core.package/JsonWebSignature.class/instance/payload.st delete mode 100644 source/JSONWebToken-Core.package/JsonWebSignature.class/instance/protectedHeader.st delete mode 100644 source/JSONWebToken-Core.package/JsonWebSignature.class/instance/setProtectedHeader..st delete mode 100644 source/JSONWebToken-Core.package/JsonWebSignature.class/instance/signatureFor..st delete mode 100644 source/JSONWebToken-Core.package/JsonWebSignature.class/instance/writePayloadOn..st delete mode 100644 source/JSONWebToken-Core.package/JsonWebSignature.class/instance/writeProtectedHeaderOn..st delete mode 100644 source/JSONWebToken-Core.package/JsonWebSignature.class/properties.json delete mode 100644 source/JSONWebToken-Core.package/String.extension/properties.json delete mode 100644 source/JSONWebToken-Core.package/monticello.meta/categories.st delete mode 100644 source/JSONWebToken-Core.package/monticello.meta/initializers.st delete mode 100644 source/JSONWebToken-Core.package/monticello.meta/package delete mode 100644 source/JSONWebToken-Core.package/properties.json create mode 100644 source/JSONWebToken-Core/Base64UrlEncoder.class.st create mode 100644 source/JSONWebToken-Core/JOSEHeader.class.st create mode 100644 source/JSONWebToken-Core/JWAHMACSHA256.class.st create mode 100644 source/JSONWebToken-Core/JWANone.class.st create mode 100644 source/JSONWebToken-Core/JWCryptoHeader.class.st create mode 100644 source/JSONWebToken-Core/JWEHeader.class.st create mode 100644 source/JSONWebToken-Core/JWSCompactSerializer.class.st create mode 100644 source/JSONWebToken-Core/JWSHeader.class.st create mode 100644 source/JSONWebToken-Core/JWSInvalidTokenFormat.class.st create mode 100644 source/JSONWebToken-Core/JWSSerializer.class.st create mode 100644 source/JSONWebToken-Core/JWTClaimsSet.class.st create mode 100644 source/JSONWebToken-Core/JWTHeader.class.st create mode 100644 source/JSONWebToken-Core/JsonWebAlgorithm.class.st create mode 100644 source/JSONWebToken-Core/JsonWebSignature.class.st rename source/{JSONWebToken-Core.package/String.extension/instance/base64Padded.st => JSONWebToken-Core/String.extension.st} (67%) create mode 100644 source/JSONWebToken-Core/package.st delete mode 100644 source/JSONWebToken-OpenSSL-Tests.package/.filetree delete mode 100644 source/JSONWebToken-OpenSSL-Tests.package/JSONWebTokenOpenSSLTest.class/README.md delete mode 100644 source/JSONWebToken-OpenSSL-Tests.package/JSONWebTokenOpenSSLTest.class/properties.json delete mode 100644 source/JSONWebToken-OpenSSL-Tests.package/monticello.meta/categories.st delete mode 100644 source/JSONWebToken-OpenSSL-Tests.package/monticello.meta/initializers.st delete mode 100644 source/JSONWebToken-OpenSSL-Tests.package/monticello.meta/package delete mode 100644 source/JSONWebToken-OpenSSL-Tests.package/properties.json rename source/{JSONWebToken-OpenSSL-Tests.package/JSONWebTokenOpenSSLTest.class/instance/testRSAEncoding.st => JSONWebToken-OpenSSL-Tests/JSONWebTokenOpenSSLTest.class.st} (90%) create mode 100644 source/JSONWebToken-OpenSSL-Tests/package.st delete mode 100644 source/JSONWebToken-OpenSSL.package/.filetree delete mode 100644 source/JSONWebToken-OpenSSL.package/JWARSASHA256.class/README.md delete mode 100644 source/JSONWebToken-OpenSSL.package/JWARSASHA256.class/class/parameterValue.st delete mode 100644 source/JSONWebToken-OpenSSL.package/JWARSASHA256.class/class/signMessage.withKey..st delete mode 100644 source/JSONWebToken-OpenSSL.package/JWARSASHA256.class/properties.json delete mode 100644 source/JSONWebToken-OpenSSL.package/monticello.meta/categories.st delete mode 100644 source/JSONWebToken-OpenSSL.package/monticello.meta/initializers.st delete mode 100644 source/JSONWebToken-OpenSSL.package/monticello.meta/package delete mode 100644 source/JSONWebToken-OpenSSL.package/properties.json rename source/{JSONWebToken-OpenSSL.package/JWARSASHA256.class/class/checkSignatureOfParts.withKey..st => JSONWebToken-OpenSSL/JWARSASHA256.class.st} (51%) create mode 100644 source/JSONWebToken-OpenSSL/package.st diff --git a/source/.filetree b/source/.filetree deleted file mode 100644 index c6704e5..0000000 --- a/source/.filetree +++ /dev/null @@ -1,2 +0,0 @@ -{"packageExtension" : ".package", -"propertyFileExtension" : ".json" } \ No newline at end of file diff --git a/source/.properties b/source/.properties index c2bedd4..ad0471d 100644 --- a/source/.properties +++ b/source/.properties @@ -1,3 +1,3 @@ { - #format : #filetree + #format : #tonel } \ No newline at end of file diff --git a/source/BaselineOfJSONWebToken.package/.filetree b/source/BaselineOfJSONWebToken.package/.filetree deleted file mode 100644 index 57a6797..0000000 --- a/source/BaselineOfJSONWebToken.package/.filetree +++ /dev/null @@ -1,5 +0,0 @@ -{ - "separateMethodMetaAndSource" : false, - "noMethodMetaData" : true, - "useCypressPropertiesFile" : true -} \ No newline at end of file diff --git a/source/BaselineOfJSONWebToken.package/BaselineOfJSONWebToken.class/README.md b/source/BaselineOfJSONWebToken.package/BaselineOfJSONWebToken.class/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/source/BaselineOfJSONWebToken.package/BaselineOfJSONWebToken.class/properties.json b/source/BaselineOfJSONWebToken.package/BaselineOfJSONWebToken.class/properties.json deleted file mode 100644 index 6ed4ccd..0000000 --- a/source/BaselineOfJSONWebToken.package/BaselineOfJSONWebToken.class/properties.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "commentStamp" : "", - "super" : "BaselineOf", - "category" : "BaselineOfJSONWebToken", - "classinstvars" : [ ], - "pools" : [ ], - "classvars" : [ ], - "instvars" : [ ], - "name" : "BaselineOfJSONWebToken", - "type" : "normal" -} \ No newline at end of file diff --git a/source/BaselineOfJSONWebToken.package/monticello.meta/categories.st b/source/BaselineOfJSONWebToken.package/monticello.meta/categories.st deleted file mode 100644 index e6ad64a..0000000 --- a/source/BaselineOfJSONWebToken.package/monticello.meta/categories.st +++ /dev/null @@ -1 +0,0 @@ -SystemOrganization addCategory: #BaselineOfJSONWebToken! diff --git a/source/BaselineOfJSONWebToken.package/monticello.meta/initializers.st b/source/BaselineOfJSONWebToken.package/monticello.meta/initializers.st deleted file mode 100644 index e69de29..0000000 diff --git a/source/BaselineOfJSONWebToken.package/monticello.meta/package b/source/BaselineOfJSONWebToken.package/monticello.meta/package deleted file mode 100644 index 33bbc5e..0000000 --- a/source/BaselineOfJSONWebToken.package/monticello.meta/package +++ /dev/null @@ -1 +0,0 @@ -(name 'BaselineOfJSONWebToken') \ No newline at end of file diff --git a/source/BaselineOfJSONWebToken.package/properties.json b/source/BaselineOfJSONWebToken.package/properties.json deleted file mode 100644 index 6f31cf5..0000000 --- a/source/BaselineOfJSONWebToken.package/properties.json +++ /dev/null @@ -1 +0,0 @@ -{ } \ No newline at end of file diff --git a/source/BaselineOfJSONWebToken.package/BaselineOfJSONWebToken.class/instance/baseline..st b/source/BaselineOfJSONWebToken/BaselineOfJSONWebToken.class.st similarity index 79% rename from source/BaselineOfJSONWebToken.package/BaselineOfJSONWebToken.class/instance/baseline..st rename to source/BaselineOfJSONWebToken/BaselineOfJSONWebToken.class.st index ef79263..01d07ec 100644 --- a/source/BaselineOfJSONWebToken.package/BaselineOfJSONWebToken.class/instance/baseline..st +++ b/source/BaselineOfJSONWebToken/BaselineOfJSONWebToken.class.st @@ -1,5 +1,12 @@ -baselines -baseline: spec +Class { + #name : 'BaselineOfJSONWebToken', + #superclass : 'BaselineOf', + #category : 'BaselineOfJSONWebToken', + #package : 'BaselineOfJSONWebToken' +} + +{ #category : 'baselines' } +BaselineOfJSONWebToken >> baseline: spec [ spec for: #common @@ -23,3 +30,5 @@ baseline: spec group: 'SSL' with: #('JSONWebToken-OpenSSL'); group: 'Tests' with: #('JSONWebToken-Core-Tests' 'JSONWebToken-OpenSSL-Tests'); group: 'default' with: #('Core' 'SSL' 'Tests') ] + +] diff --git a/source/BaselineOfJSONWebToken/package.st b/source/BaselineOfJSONWebToken/package.st new file mode 100644 index 0000000..01cae50 --- /dev/null +++ b/source/BaselineOfJSONWebToken/package.st @@ -0,0 +1 @@ +Package { #name : 'BaselineOfJSONWebToken' } diff --git a/source/JSONWebToken-Core-Tests.package/.filetree b/source/JSONWebToken-Core-Tests.package/.filetree deleted file mode 100644 index 57a6797..0000000 --- a/source/JSONWebToken-Core-Tests.package/.filetree +++ /dev/null @@ -1,5 +0,0 @@ -{ - "separateMethodMetaAndSource" : false, - "noMethodMetaData" : true, - "useCypressPropertiesFile" : true -} \ No newline at end of file diff --git a/source/JSONWebToken-Core-Tests.package/Base64UrlEncoderTest.class/README.md b/source/JSONWebToken-Core-Tests.package/Base64UrlEncoderTest.class/README.md deleted file mode 100644 index b860b76..0000000 --- a/source/JSONWebToken-Core-Tests.package/Base64UrlEncoderTest.class/README.md +++ /dev/null @@ -1 +0,0 @@ -A Base64UrlEncoderTest is a test class for testing the behavior of Base64UrlEncoder \ No newline at end of file diff --git a/source/JSONWebToken-Core-Tests.package/Base64UrlEncoderTest.class/instance/setUp.st b/source/JSONWebToken-Core-Tests.package/Base64UrlEncoderTest.class/instance/setUp.st deleted file mode 100644 index 4b5559b..0000000 --- a/source/JSONWebToken-Core-Tests.package/Base64UrlEncoderTest.class/instance/setUp.st +++ /dev/null @@ -1,5 +0,0 @@ -running -setUp - - super setUp. - encoder := Base64UrlEncoder new \ No newline at end of file diff --git a/source/JSONWebToken-Core-Tests.package/Base64UrlEncoderTest.class/instance/testComparisonAgainstBase64.st b/source/JSONWebToken-Core-Tests.package/Base64UrlEncoderTest.class/instance/testComparisonAgainstBase64.st deleted file mode 100644 index 537595c..0000000 --- a/source/JSONWebToken-Core-Tests.package/Base64UrlEncoderTest.class/instance/testComparisonAgainstBase64.st +++ /dev/null @@ -1,6 +0,0 @@ -tests -testComparisonAgainstBase64 - - self - assert: #[87 6 86 119 38 150 198 198 254 255] base64Encoded equals: 'VwZWdyaWxsb+/w=='; - assert: ( encoder encode: #[87 6 86 119 38 150 198 198 254 255] ) equals: 'VwZWdyaWxsb-_w==' \ No newline at end of file diff --git a/source/JSONWebToken-Core-Tests.package/Base64UrlEncoderTest.class/instance/testDecode.st b/source/JSONWebToken-Core-Tests.package/Base64UrlEncoderTest.class/instance/testDecode.st deleted file mode 100644 index f3efcad..0000000 --- a/source/JSONWebToken-Core-Tests.package/Base64UrlEncoderTest.class/instance/testDecode.st +++ /dev/null @@ -1,4 +0,0 @@ -tests -testDecode - - self assert: ( encoder decode: 'VwZWdyaWxsb-_w==' ) equals: #[87 6 86 119 38 150 198 198 254 255] \ No newline at end of file diff --git a/source/JSONWebToken-Core-Tests.package/Base64UrlEncoderTest.class/instance/testEncode.st b/source/JSONWebToken-Core-Tests.package/Base64UrlEncoderTest.class/instance/testEncode.st deleted file mode 100644 index 4dd601b..0000000 --- a/source/JSONWebToken-Core-Tests.package/Base64UrlEncoderTest.class/instance/testEncode.st +++ /dev/null @@ -1,4 +0,0 @@ -tests -testEncode - - self assert: ( encoder encode: #[87 6 86 119 38 150 198 198 254 255] ) equals: 'VwZWdyaWxsb-_w==' \ No newline at end of file diff --git a/source/JSONWebToken-Core-Tests.package/Base64UrlEncoderTest.class/properties.json b/source/JSONWebToken-Core-Tests.package/Base64UrlEncoderTest.class/properties.json deleted file mode 100644 index 7d6cf18..0000000 --- a/source/JSONWebToken-Core-Tests.package/Base64UrlEncoderTest.class/properties.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "commentStamp" : "", - "super" : "TestCase", - "category" : "JSONWebToken-Core-Tests", - "classinstvars" : [ ], - "pools" : [ ], - "classvars" : [ ], - "instvars" : [ - "encoder" - ], - "name" : "Base64UrlEncoderTest", - "type" : "normal" -} \ No newline at end of file diff --git a/source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/README.md b/source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/README.md deleted file mode 100644 index cfcdb51..0000000 --- a/source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/README.md +++ /dev/null @@ -1 +0,0 @@ -Unit tests for JSON web tokens \ No newline at end of file diff --git a/source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/instance/simpleJsonWebSignature.st b/source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/instance/simpleJsonWebSignature.st deleted file mode 100644 index fc364da..0000000 --- a/source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/instance/simpleJsonWebSignature.st +++ /dev/null @@ -1,7 +0,0 @@ -as yet unclassified -simpleJsonWebSignature - ^ JsonWebSignature new - algorithmName: 'HS256'; - payload: (JWTClaimsSet new - at: 'bar' put: 'foo'); - key: 'foobar' \ No newline at end of file diff --git a/source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/instance/simpleTokenString.st b/source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/instance/simpleTokenString.st deleted file mode 100644 index 02ccc53..0000000 --- a/source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/instance/simpleTokenString.st +++ /dev/null @@ -1,3 +0,0 @@ -as yet unclassified -simpleTokenString - ^ self simpleJsonWebSignature compactSerialized. \ No newline at end of file diff --git a/source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/instance/testDecodingThreeParts.st b/source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/instance/testDecodingThreeParts.st deleted file mode 100644 index c613f6e..0000000 --- a/source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/instance/testDecodingThreeParts.st +++ /dev/null @@ -1,8 +0,0 @@ -tests -testDecodingThreeParts - | tokenString invalid | - tokenString := self simpleTokenString. - invalid := $. join: ($. split: tokenString) allButLast. - self - should: [ JsonWebSignature materializeCompact: invalid key: 'foobar' ] - raise: JWSInvalidTokenFormat. \ No newline at end of file diff --git a/source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/instance/testEncoding.st b/source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/instance/testEncoding.st deleted file mode 100644 index 00b6a7c..0000000 --- a/source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/instance/testEncoding.st +++ /dev/null @@ -1,23 +0,0 @@ -tests -testEncoding - - "This test verifies the token serialization against https://jwt.io/" - - | jws tokenString | - - jws := JsonWebSignature new - algorithmName: 'HS256'; - payload: - ( JWTClaimsSet new - at: 'scope' - put: - 'read:operations read:metrics execute:health-check read:application-info execute:application-control read:application-configuration'; - yourself ). - jws key: '69YLYMC02jLExrrkcR@NhrZaj%Xw^VFfK*r34uRWvl3e91N3es'. - - tokenString := jws compactSerialized. - - self - assert: tokenString - equals: - 'eyJhbGciOiJIUzI1NiJ9.eyJzY29wZSI6InJlYWQ6b3BlcmF0aW9ucyByZWFkOm1ldHJpY3MgZXhlY3V0ZTpoZWFsdGgtY2hlY2sgcmVhZDphcHBsaWNhdGlvbi1pbmZvIGV4ZWN1dGU6YXBwbGljYXRpb24tY29udHJvbCByZWFkOmFwcGxpY2F0aW9uLWNvbmZpZ3VyYXRpb24ifQ.-3meQq_ATpkE4FwFefP0AEBrFh9_llQxVXjnf-HLrIU' \ No newline at end of file diff --git a/source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/instance/testPadding.st b/source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/instance/testPadding.st deleted file mode 100644 index a6ca5f6..0000000 --- a/source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/instance/testPadding.st +++ /dev/null @@ -1,8 +0,0 @@ -tests -testPadding - - self - assert: '4' base64Padded equals: '4==='; - assert: '42' base64Padded equals: '42=='; - assert: '424' base64Padded equals: '424='; - assert: '4242' base64Padded equals: '4242' \ No newline at end of file diff --git a/source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/instance/testRoundtrip.st b/source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/instance/testRoundtrip.st deleted file mode 100644 index 44bffe5..0000000 --- a/source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/instance/testRoundtrip.st +++ /dev/null @@ -1,15 +0,0 @@ -tests -testRoundtrip - | jws tokenString materialized | - - jws := JsonWebSignature new - algorithmName: 'HS256'; - payload: (JWTClaimsSet new - at: 'bar' put: 'foo'). - jws key: 'foobar'. - - tokenString := jws compactSerialized. - - materialized := JsonWebSignature materializeCompact: tokenString key: 'foobar'. - - self assert: jws equals: materialized diff --git a/source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/instance/testUnsecuredJWT.st b/source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/instance/testUnsecuredJWT.st deleted file mode 100644 index 81c6298..0000000 --- a/source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/instance/testUnsecuredJWT.st +++ /dev/null @@ -1,15 +0,0 @@ -tests -testUnsecuredJWT - - | jws tokenString materialized | - - jws := JsonWebSignature new - algorithmName: 'none'; - payload: ( JWTClaimsSet new at: 'bar' put: 'foo' ). - jws key: 'foobar'. - - tokenString := jws compactSerialized. - - materialized := JsonWebSignature materializeCompact: tokenString key: 'foobar'. - - self assert: jws equals: materialized \ No newline at end of file diff --git a/source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/properties.json b/source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/properties.json deleted file mode 100644 index f4f4d36..0000000 --- a/source/JSONWebToken-Core-Tests.package/JSONWebTokenTest.class/properties.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "commentStamp" : "TorstenBergmann 8/13/2018 15:30", - "super" : "TestCase", - "category" : "JSONWebToken-Core-Tests", - "classinstvars" : [ ], - "pools" : [ ], - "classvars" : [ ], - "instvars" : [ ], - "name" : "JSONWebTokenTest", - "type" : "normal" -} \ No newline at end of file diff --git a/source/JSONWebToken-Core-Tests.package/monticello.meta/categories.st b/source/JSONWebToken-Core-Tests.package/monticello.meta/categories.st deleted file mode 100644 index a048568..0000000 --- a/source/JSONWebToken-Core-Tests.package/monticello.meta/categories.st +++ /dev/null @@ -1 +0,0 @@ -SystemOrganization addCategory: #'JSONWebToken-Core-Tests'! diff --git a/source/JSONWebToken-Core-Tests.package/monticello.meta/initializers.st b/source/JSONWebToken-Core-Tests.package/monticello.meta/initializers.st deleted file mode 100644 index e69de29..0000000 diff --git a/source/JSONWebToken-Core-Tests.package/monticello.meta/package b/source/JSONWebToken-Core-Tests.package/monticello.meta/package deleted file mode 100644 index 32bf34c..0000000 --- a/source/JSONWebToken-Core-Tests.package/monticello.meta/package +++ /dev/null @@ -1 +0,0 @@ -(name 'JSONWebToken-Core-Tests') \ No newline at end of file diff --git a/source/JSONWebToken-Core-Tests.package/properties.json b/source/JSONWebToken-Core-Tests.package/properties.json deleted file mode 100644 index 6f31cf5..0000000 --- a/source/JSONWebToken-Core-Tests.package/properties.json +++ /dev/null @@ -1 +0,0 @@ -{ } \ No newline at end of file diff --git a/source/JSONWebToken-Core-Tests/Base64UrlEncoderTest.class.st b/source/JSONWebToken-Core-Tests/Base64UrlEncoderTest.class.st new file mode 100644 index 0000000..a8a4273 --- /dev/null +++ b/source/JSONWebToken-Core-Tests/Base64UrlEncoderTest.class.st @@ -0,0 +1,39 @@ +" +A Base64UrlEncoderTest is a test class for testing the behavior of Base64UrlEncoder +" +Class { + #name : 'Base64UrlEncoderTest', + #superclass : 'TestCase', + #instVars : [ + 'encoder' + ], + #category : 'JSONWebToken-Core-Tests', + #package : 'JSONWebToken-Core-Tests' +} + +{ #category : 'running' } +Base64UrlEncoderTest >> setUp [ + + super setUp. + encoder := Base64UrlEncoder new +] + +{ #category : 'tests' } +Base64UrlEncoderTest >> testComparisonAgainstBase64 [ + + self + assert: #[87 6 86 119 38 150 198 198 254 255] base64Encoded equals: 'VwZWdyaWxsb+/w=='; + assert: ( encoder encode: #[87 6 86 119 38 150 198 198 254 255] ) equals: 'VwZWdyaWxsb-_w==' +] + +{ #category : 'tests' } +Base64UrlEncoderTest >> testDecode [ + + self assert: ( encoder decode: 'VwZWdyaWxsb-_w==' ) equals: #[87 6 86 119 38 150 198 198 254 255] +] + +{ #category : 'tests' } +Base64UrlEncoderTest >> testEncode [ + + self assert: ( encoder encode: #[87 6 86 119 38 150 198 198 254 255] ) equals: 'VwZWdyaWxsb-_w==' +] diff --git a/source/JSONWebToken-Core-Tests/JSONWebTokenTest.class.st b/source/JSONWebToken-Core-Tests/JSONWebTokenTest.class.st new file mode 100644 index 0000000..4b4b16f --- /dev/null +++ b/source/JSONWebToken-Core-Tests/JSONWebTokenTest.class.st @@ -0,0 +1,103 @@ +" +Unit tests for JSON web tokens +" +Class { + #name : 'JSONWebTokenTest', + #superclass : 'TestCase', + #category : 'JSONWebToken-Core-Tests', + #package : 'JSONWebToken-Core-Tests' +} + +{ #category : 'as yet unclassified' } +JSONWebTokenTest >> simpleJsonWebSignature [ + ^ JsonWebSignature new + algorithmName: 'HS256'; + payload: (JWTClaimsSet new + at: 'bar' put: 'foo'); + key: 'foobar' +] + +{ #category : 'as yet unclassified' } +JSONWebTokenTest >> simpleTokenString [ + ^ self simpleJsonWebSignature compactSerialized. +] + +{ #category : 'tests' } +JSONWebTokenTest >> testDecodingThreeParts [ + | tokenString invalid | + tokenString := self simpleTokenString. + invalid := $. join: ($. split: tokenString) allButLast. + self + should: [ JsonWebSignature materializeCompact: invalid key: 'foobar' ] + raise: JWSInvalidTokenFormat. +] + +{ #category : 'tests' } +JSONWebTokenTest >> testEncoding [ + + "This test verifies the token serialization against https://jwt.io/" + + | jws tokenString | + + jws := JsonWebSignature new + algorithmName: 'HS256'; + payload: + ( JWTClaimsSet new + at: 'scope' + put: + 'read:operations read:metrics execute:health-check read:application-info execute:application-control read:application-configuration'; + yourself ). + jws key: '69YLYMC02jLExrrkcR@NhrZaj%Xw^VFfK*r34uRWvl3e91N3es'. + + tokenString := jws compactSerialized. + + self + assert: tokenString + equals: + 'eyJhbGciOiJIUzI1NiJ9.eyJzY29wZSI6InJlYWQ6b3BlcmF0aW9ucyByZWFkOm1ldHJpY3MgZXhlY3V0ZTpoZWFsdGgtY2hlY2sgcmVhZDphcHBsaWNhdGlvbi1pbmZvIGV4ZWN1dGU6YXBwbGljYXRpb24tY29udHJvbCByZWFkOmFwcGxpY2F0aW9uLWNvbmZpZ3VyYXRpb24ifQ.-3meQq_ATpkE4FwFefP0AEBrFh9_llQxVXjnf-HLrIU' +] + +{ #category : 'tests' } +JSONWebTokenTest >> testPadding [ + + self + assert: '4' base64Padded equals: '4==='; + assert: '42' base64Padded equals: '42=='; + assert: '424' base64Padded equals: '424='; + assert: '4242' base64Padded equals: '4242' +] + +{ #category : 'tests' } +JSONWebTokenTest >> testRoundtrip [ + | jws tokenString materialized | + + jws := JsonWebSignature new + algorithmName: 'HS256'; + payload: (JWTClaimsSet new + at: 'bar' put: 'foo'). + jws key: 'foobar'. + + tokenString := jws compactSerialized. + + materialized := JsonWebSignature materializeCompact: tokenString key: 'foobar'. + + self assert: jws equals: materialized + +] + +{ #category : 'tests' } +JSONWebTokenTest >> testUnsecuredJWT [ + + | jws tokenString materialized | + + jws := JsonWebSignature new + algorithmName: 'none'; + payload: ( JWTClaimsSet new at: 'bar' put: 'foo' ). + jws key: 'foobar'. + + tokenString := jws compactSerialized. + + materialized := JsonWebSignature materializeCompact: tokenString key: 'foobar'. + + self assert: jws equals: materialized +] diff --git a/source/JSONWebToken-Core-Tests/package.st b/source/JSONWebToken-Core-Tests/package.st new file mode 100644 index 0000000..5b24c79 --- /dev/null +++ b/source/JSONWebToken-Core-Tests/package.st @@ -0,0 +1 @@ +Package { #name : 'JSONWebToken-Core-Tests' } diff --git a/source/JSONWebToken-Core.package/.filetree b/source/JSONWebToken-Core.package/.filetree deleted file mode 100644 index 57a6797..0000000 --- a/source/JSONWebToken-Core.package/.filetree +++ /dev/null @@ -1,5 +0,0 @@ -{ - "separateMethodMetaAndSource" : false, - "noMethodMetaData" : true, - "useCypressPropertiesFile" : true -} \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/Base64UrlEncoder.class/README.md b/source/JSONWebToken-Core.package/Base64UrlEncoder.class/README.md deleted file mode 100644 index 239f34f..0000000 --- a/source/JSONWebToken-Core.package/Base64UrlEncoder.class/README.md +++ /dev/null @@ -1,5 +0,0 @@ -I am encoder/decoder for base 64 using an alphabet that's URL and filename safe according to https://tools.ietf.org/html/rfc4648#page-5. - -Base64 encoding is a technique to encode binary data as a string of characters that can be safely transported over various protocols. -Basically, every 3 bytes are encoded using 4 characters from an alphabet of 64. Each encoded character represents 6 bits. - diff --git a/source/JSONWebToken-Core.package/Base64UrlEncoder.class/class/initialize.st b/source/JSONWebToken-Core.package/Base64UrlEncoder.class/class/initialize.st deleted file mode 100644 index 837f23a..0000000 --- a/source/JSONWebToken-Core.package/Base64UrlEncoder.class/class/initialize.st +++ /dev/null @@ -1,4 +0,0 @@ -class initialization -initialize - - URLSafeAlphabet := String withAll: ( $A to: $Z ) , ( $a to: $z ) , ( $0 to: $9 ) , #($- $_) \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/Base64UrlEncoder.class/instance/decode..st b/source/JSONWebToken-Core.package/Base64UrlEncoder.class/instance/decode..st deleted file mode 100644 index 8dc89d1..0000000 --- a/source/JSONWebToken-Core.package/Base64UrlEncoder.class/instance/decode..st +++ /dev/null @@ -1,4 +0,0 @@ -converting -decode: string - - ^ encoder decode: string \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/Base64UrlEncoder.class/instance/encode..st b/source/JSONWebToken-Core.package/Base64UrlEncoder.class/instance/encode..st deleted file mode 100644 index 3d88763..0000000 --- a/source/JSONWebToken-Core.package/Base64UrlEncoder.class/instance/encode..st +++ /dev/null @@ -1,4 +0,0 @@ -converting -encode: byteArray - - ^ encoder encode: byteArray \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/Base64UrlEncoder.class/instance/initialize.st b/source/JSONWebToken-Core.package/Base64UrlEncoder.class/instance/initialize.st deleted file mode 100644 index 04a5d2a..0000000 --- a/source/JSONWebToken-Core.package/Base64UrlEncoder.class/instance/initialize.st +++ /dev/null @@ -1,6 +0,0 @@ -initialization -initialize - - super initialize. - encoder := ZnBase64Encoder new. - encoder alphabet: URLSafeAlphabet \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/Base64UrlEncoder.class/properties.json b/source/JSONWebToken-Core.package/Base64UrlEncoder.class/properties.json deleted file mode 100644 index 98fa854..0000000 --- a/source/JSONWebToken-Core.package/Base64UrlEncoder.class/properties.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "commentStamp" : "GOC 12/4/2019 13:05", - "super" : "Object", - "category" : "JSONWebToken-Core-Serialization", - "classinstvars" : [ ], - "pools" : [ ], - "classvars" : [ - "URLSafeAlphabet" - ], - "instvars" : [ - "encoder" - ], - "name" : "Base64UrlEncoder", - "type" : "normal" -} \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JOSEHeader.class/README.md b/source/JSONWebToken-Core.package/JOSEHeader.class/README.md deleted file mode 100644 index 3056555..0000000 --- a/source/JSONWebToken-Core.package/JOSEHeader.class/README.md +++ /dev/null @@ -1 +0,0 @@ -Common superclass for Javascript Object Signing and Encryption headers (JOSE) \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JOSEHeader.class/class/neoJsonMapping..st b/source/JSONWebToken-Core.package/JOSEHeader.class/class/neoJsonMapping..st deleted file mode 100644 index b47a611..0000000 --- a/source/JSONWebToken-Core.package/JOSEHeader.class/class/neoJsonMapping..st +++ /dev/null @@ -1,7 +0,0 @@ -as yet unclassified -neoJsonMapping: mapper - mapper for: self do: [ :mapping | - mapping - mapInstVar: #type to: #typ; - mapInstVar: #algorithm to: #alg ] - \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JOSEHeader.class/instance/^equals.st b/source/JSONWebToken-Core.package/JOSEHeader.class/instance/^equals.st deleted file mode 100644 index 1303fc4..0000000 --- a/source/JSONWebToken-Core.package/JOSEHeader.class/instance/^equals.st +++ /dev/null @@ -1,3 +0,0 @@ -comparing -= aHeader - ^ aHeader hasSameElements: properties \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JOSEHeader.class/instance/hasSameElements..st b/source/JSONWebToken-Core.package/JOSEHeader.class/instance/hasSameElements..st deleted file mode 100644 index 2db9017..0000000 --- a/source/JSONWebToken-Core.package/JOSEHeader.class/instance/hasSameElements..st +++ /dev/null @@ -1,3 +0,0 @@ -testing -hasSameElements: aDictionary - ^ (properties difference: aDictionary) isEmpty \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JOSEHeader.class/instance/hash.st b/source/JSONWebToken-Core.package/JOSEHeader.class/instance/hash.st deleted file mode 100644 index 284249c..0000000 --- a/source/JSONWebToken-Core.package/JOSEHeader.class/instance/hash.st +++ /dev/null @@ -1,3 +0,0 @@ -comparing -hash - ^ properties hash \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JOSEHeader.class/instance/typ..st b/source/JSONWebToken-Core.package/JOSEHeader.class/instance/typ..st deleted file mode 100644 index 68998cc..0000000 --- a/source/JSONWebToken-Core.package/JOSEHeader.class/instance/typ..st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -typ: aString - self type: aString \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JOSEHeader.class/instance/typ.st b/source/JSONWebToken-Core.package/JOSEHeader.class/instance/typ.st deleted file mode 100644 index 8eb7482..0000000 --- a/source/JSONWebToken-Core.package/JOSEHeader.class/instance/typ.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -typ - ^ self type \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JOSEHeader.class/instance/type..st b/source/JSONWebToken-Core.package/JOSEHeader.class/instance/type..st deleted file mode 100644 index c069de3..0000000 --- a/source/JSONWebToken-Core.package/JOSEHeader.class/instance/type..st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -type: anObject - properties at: 'typ' put: anObject \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JOSEHeader.class/instance/type.st b/source/JSONWebToken-Core.package/JOSEHeader.class/instance/type.st deleted file mode 100644 index a495ac7..0000000 --- a/source/JSONWebToken-Core.package/JOSEHeader.class/instance/type.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -type - ^ properties at: 'typ' \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JOSEHeader.class/properties.json b/source/JSONWebToken-Core.package/JOSEHeader.class/properties.json deleted file mode 100644 index a8afcf0..0000000 --- a/source/JSONWebToken-Core.package/JOSEHeader.class/properties.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "commentStamp" : "TorstenBergmann 8/13/2018 13:53", - "super" : "Object", - "category" : "JSONWebToken-Core-Headers", - "classinstvars" : [ ], - "pools" : [ ], - "classvars" : [ ], - "instvars" : [ - "properties" - ], - "name" : "JOSEHeader", - "type" : "normal" -} \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWAHMACSHA256.class/README.md b/source/JSONWebToken-Core.package/JWAHMACSHA256.class/README.md deleted file mode 100644 index a026b4c..0000000 --- a/source/JSONWebToken-Core.package/JWAHMACSHA256.class/README.md +++ /dev/null @@ -1 +0,0 @@ -HMAC SHA256 \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWAHMACSHA256.class/class/checkSignatureOfParts.withKey..st b/source/JSONWebToken-Core.package/JWAHMACSHA256.class/class/checkSignatureOfParts.withKey..st deleted file mode 100644 index 11b2e37..0000000 --- a/source/JSONWebToken-Core.package/JWAHMACSHA256.class/class/checkSignatureOfParts.withKey..st +++ /dev/null @@ -1,10 +0,0 @@ -sign -checkSignatureOfParts: parts withKey: key - (self - signMessage: - ($. - join: - {parts first. - parts second}) withKey: key) - = (Base64UrlEncoder new decode: parts third base64Padded) - ifFalse: [ Error signal: 'signature does not match' ] \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWAHMACSHA256.class/class/parameterValue.st b/source/JSONWebToken-Core.package/JWAHMACSHA256.class/class/parameterValue.st deleted file mode 100644 index f0514e3..0000000 --- a/source/JSONWebToken-Core.package/JWAHMACSHA256.class/class/parameterValue.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -parameterValue - ^ 'HS256' \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWAHMACSHA256.class/class/signMessage.withKey..st b/source/JSONWebToken-Core.package/JWAHMACSHA256.class/class/signMessage.withKey..st deleted file mode 100644 index 6a5792c..0000000 --- a/source/JSONWebToken-Core.package/JWAHMACSHA256.class/class/signMessage.withKey..st +++ /dev/null @@ -1,5 +0,0 @@ -sign -signMessage: aString withKey: anObject - ^ ((HMAC on: SHA256) - key: anObject asByteArray; - digestMessage: aString asByteArray) \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWAHMACSHA256.class/properties.json b/source/JSONWebToken-Core.package/JWAHMACSHA256.class/properties.json deleted file mode 100644 index f00ba52..0000000 --- a/source/JSONWebToken-Core.package/JWAHMACSHA256.class/properties.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "commentStamp" : "TorstenBergmann 8/13/2018 15:25", - "super" : "JsonWebAlgorithm", - "category" : "JSONWebToken-Core-Algorithms", - "classinstvars" : [ ], - "pools" : [ ], - "classvars" : [ ], - "instvars" : [ ], - "name" : "JWAHMACSHA256", - "type" : "normal" -} \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWANone.class/README.md b/source/JSONWebToken-Core.package/JWANone.class/README.md deleted file mode 100644 index 47e49eb..0000000 --- a/source/JSONWebToken-Core.package/JWANone.class/README.md +++ /dev/null @@ -1 +0,0 @@ -An empty algorithm for not signing \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWANone.class/class/checkSignatureOfParts.withKey..st b/source/JSONWebToken-Core.package/JWANone.class/class/checkSignatureOfParts.withKey..st deleted file mode 100644 index ea7c241..0000000 --- a/source/JSONWebToken-Core.package/JWANone.class/class/checkSignatureOfParts.withKey..st +++ /dev/null @@ -1,3 +0,0 @@ -sign -checkSignatureOfParts: parts withKey: key - \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWANone.class/class/parameterValue.st b/source/JSONWebToken-Core.package/JWANone.class/class/parameterValue.st deleted file mode 100644 index 0035451..0000000 --- a/source/JSONWebToken-Core.package/JWANone.class/class/parameterValue.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -parameterValue - ^ 'none' \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWANone.class/class/signMessage.withKey..st b/source/JSONWebToken-Core.package/JWANone.class/class/signMessage.withKey..st deleted file mode 100644 index b5a31b8..0000000 --- a/source/JSONWebToken-Core.package/JWANone.class/class/signMessage.withKey..st +++ /dev/null @@ -1,3 +0,0 @@ -signing -signMessage: aString withKey: aKeyString - ^ #[] \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWANone.class/properties.json b/source/JSONWebToken-Core.package/JWANone.class/properties.json deleted file mode 100644 index 36df332..0000000 --- a/source/JSONWebToken-Core.package/JWANone.class/properties.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "commentStamp" : "TorstenBergmann 8/13/2018 15:26", - "super" : "JsonWebAlgorithm", - "category" : "JSONWebToken-Core-Algorithms", - "classinstvars" : [ ], - "pools" : [ ], - "classvars" : [ ], - "instvars" : [ ], - "name" : "JWANone", - "type" : "normal" -} \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWCryptoHeader.class/README.md b/source/JSONWebToken-Core.package/JWCryptoHeader.class/README.md deleted file mode 100644 index 7d0cde9..0000000 --- a/source/JSONWebToken-Core.package/JWCryptoHeader.class/README.md +++ /dev/null @@ -1 +0,0 @@ -Common superclass for encrypted headers \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/alg..st b/source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/alg..st deleted file mode 100644 index aeed0b9..0000000 --- a/source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/alg..st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -alg: anObject - properties at: 'alg' put: anObject \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/alg.st b/source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/alg.st deleted file mode 100644 index 6700c18..0000000 --- a/source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/alg.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -alg - ^ properties at: 'alg' \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/algorithm..st b/source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/algorithm..st deleted file mode 100644 index 249f6a2..0000000 --- a/source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/algorithm..st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -algorithm: anObject - algorithm := anObject. - self alg: anObject parameterValue \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/algorithm.st b/source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/algorithm.st deleted file mode 100644 index ed33b00..0000000 --- a/source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/algorithm.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -algorithm - ^ algorithm \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/asJson.st b/source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/asJson.st deleted file mode 100644 index 2b5d1c3..0000000 --- a/source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/asJson.st +++ /dev/null @@ -1,3 +0,0 @@ -converting -asJson - ^ NeoJSONWriter toString: (properties copy at: 'alg' put: algorithm parameterValue; yourself) \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/contentType..st b/source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/contentType..st deleted file mode 100644 index b851249..0000000 --- a/source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/contentType..st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -contentType: aString - properties at: 'typ' put: aString \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/initialize.st b/source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/initialize.st deleted file mode 100644 index 51fa256..0000000 --- a/source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/initialize.st +++ /dev/null @@ -1,4 +0,0 @@ -initialization -initialize - super initialize. - properties := SmallDictionary new \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/registeredHeaders.st b/source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/registeredHeaders.st deleted file mode 100644 index 85ec06c..0000000 --- a/source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/registeredHeaders.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -registeredHeaders - ^ #( typ cty ) \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/setProperties..st b/source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/setProperties..st deleted file mode 100644 index 4318364..0000000 --- a/source/JSONWebToken-Core.package/JWCryptoHeader.class/instance/setProperties..st +++ /dev/null @@ -1,5 +0,0 @@ -accessing -setProperties: aDictionary - properties := aDictionary. - (properties includesKey: 'alg') ifTrue: [ - algorithm := JsonWebAlgorithm named: (properties at: 'alg') ] \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWCryptoHeader.class/properties.json b/source/JSONWebToken-Core.package/JWCryptoHeader.class/properties.json deleted file mode 100644 index 7c59eee..0000000 --- a/source/JSONWebToken-Core.package/JWCryptoHeader.class/properties.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "commentStamp" : "TorstenBergmann 8/13/2018 13:52", - "super" : "JOSEHeader", - "category" : "JSONWebToken-Core-Headers", - "classinstvars" : [ ], - "pools" : [ ], - "classvars" : [ ], - "instvars" : [ - "algorithm" - ], - "name" : "JWCryptoHeader", - "type" : "normal" -} \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWEHeader.class/README.md b/source/JSONWebToken-Core.package/JWEHeader.class/README.md deleted file mode 100644 index 3c9c91b..0000000 --- a/source/JSONWebToken-Core.package/JWEHeader.class/README.md +++ /dev/null @@ -1 +0,0 @@ -JSON Web encryption header \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWEHeader.class/properties.json b/source/JSONWebToken-Core.package/JWEHeader.class/properties.json deleted file mode 100644 index ff7a4a8..0000000 --- a/source/JSONWebToken-Core.package/JWEHeader.class/properties.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "commentStamp" : "TorstenBergmann 8/13/2018 13:49", - "super" : "JWCryptoHeader", - "category" : "JSONWebToken-Core-Headers", - "classinstvars" : [ ], - "pools" : [ ], - "classvars" : [ ], - "instvars" : [ ], - "name" : "JWEHeader", - "type" : "normal" -} \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWSCompactSerializer.class/README.md b/source/JSONWebToken-Core.package/JWSCompactSerializer.class/README.md deleted file mode 100644 index f43a950..0000000 --- a/source/JSONWebToken-Core.package/JWSCompactSerializer.class/README.md +++ /dev/null @@ -1,2 +0,0 @@ -A JSON Web signature serializer serializing in a more -compact Base-64 encoded format (using double dispatching) diff --git a/source/JSONWebToken-Core.package/JWSCompactSerializer.class/instance/materialize.key..st b/source/JSONWebToken-Core.package/JWSCompactSerializer.class/instance/materialize.key..st deleted file mode 100644 index 1f5ed43..0000000 --- a/source/JSONWebToken-Core.package/JWSCompactSerializer.class/instance/materialize.key..st +++ /dev/null @@ -1,3 +0,0 @@ -reading -materialize: aString key: aKeyString - ^ 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 deleted file mode 100644 index dfa97ee..0000000 --- a/source/JSONWebToken-Core.package/JWSCompactSerializer.class/instance/materialize.key.checkSignature..st +++ /dev/null @@ -1,14 +0,0 @@ -reading -materialize: aString key: aKeyString checkSignature: checkSignature - - | parts header jws | - - parts := $. split: aString. - (parts size = 3) ifFalse: [ JWSInvalidTokenFormat signal: 'the format of the token is invalid' ]. - header := JWSHeader fromJson: ( self class base64UrlDecoded: parts first ) utf8Decoded. - jws := JsonWebSignature new - key: aKeyString; - setProtectedHeader: header. - checkSignature - ifTrue: [ jws checkSignature: parts ]. - ^ jws payload: ( JWTClaimsSet fromJson: ( self class base64UrlDecoded: parts second ) utf8Decoded ) \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWSCompactSerializer.class/instance/serialize..st b/source/JSONWebToken-Core.package/JWSCompactSerializer.class/instance/serialize..st deleted file mode 100644 index 7596692..0000000 --- a/source/JSONWebToken-Core.package/JWSCompactSerializer.class/instance/serialize..st +++ /dev/null @@ -1,12 +0,0 @@ -serialization -serialize: aWebSignature - | signature | - aWebSignature writeProtectedHeaderOn: self. - stream nextPut: $. . - aWebSignature writePayloadOn: self. - - signature := aWebSignature signatureFor: stream contents. - stream - nextPut: $.; - nextPutAll: (self class base64UrlEncoded: signature). - ^ stream contents \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWSCompactSerializer.class/instance/writeHeader..st b/source/JSONWebToken-Core.package/JWSCompactSerializer.class/instance/writeHeader..st deleted file mode 100644 index 0cefa9c..0000000 --- a/source/JSONWebToken-Core.package/JWSCompactSerializer.class/instance/writeHeader..st +++ /dev/null @@ -1,3 +0,0 @@ -writing -writeHeader: aHeader - stream nextPutAll: (self class base64UrlEncoded: aHeader asJson asByteArray) diff --git a/source/JSONWebToken-Core.package/JWSCompactSerializer.class/instance/writePayload..st b/source/JSONWebToken-Core.package/JWSCompactSerializer.class/instance/writePayload..st deleted file mode 100644 index 26c925b..0000000 --- a/source/JSONWebToken-Core.package/JWSCompactSerializer.class/instance/writePayload..st +++ /dev/null @@ -1,3 +0,0 @@ -writing -writePayload: anObject - stream nextPutAll: (self class base64UrlEncoded: anObject asJson utf8Encoded) \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWSCompactSerializer.class/properties.json b/source/JSONWebToken-Core.package/JWSCompactSerializer.class/properties.json deleted file mode 100644 index 69ae343..0000000 --- a/source/JSONWebToken-Core.package/JWSCompactSerializer.class/properties.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "commentStamp" : "TorstenBergmann 8/13/2018 15:21", - "super" : "JWSSerializer", - "category" : "JSONWebToken-Core-Serialization", - "classinstvars" : [ ], - "pools" : [ ], - "classvars" : [ ], - "instvars" : [ ], - "name" : "JWSCompactSerializer", - "type" : "normal" -} \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWSHeader.class/README.md b/source/JSONWebToken-Core.package/JWSHeader.class/README.md deleted file mode 100644 index e64f57b..0000000 --- a/source/JSONWebToken-Core.package/JWSHeader.class/README.md +++ /dev/null @@ -1 +0,0 @@ -JSON Web signature header \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWSHeader.class/class/fromJson..st b/source/JSONWebToken-Core.package/JWSHeader.class/class/fromJson..st deleted file mode 100644 index 19dda08..0000000 --- a/source/JSONWebToken-Core.package/JWSHeader.class/class/fromJson..st +++ /dev/null @@ -1,4 +0,0 @@ -instance-creation -fromJson: aString - ^ self new - setProperties: (NeoJSONReader fromString: aString) \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWSHeader.class/instance/isEqualTo..st b/source/JSONWebToken-Core.package/JWSHeader.class/instance/isEqualTo..st deleted file mode 100644 index 1cb3f45..0000000 --- a/source/JSONWebToken-Core.package/JWSHeader.class/instance/isEqualTo..st +++ /dev/null @@ -1,3 +0,0 @@ -testing -isEqualTo: aHeader - ^ aHeader hasSameElements: properties \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWSHeader.class/properties.json b/source/JSONWebToken-Core.package/JWSHeader.class/properties.json deleted file mode 100644 index 888d700..0000000 --- a/source/JSONWebToken-Core.package/JWSHeader.class/properties.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "commentStamp" : "TorstenBergmann 8/13/2018 13:49", - "super" : "JWCryptoHeader", - "category" : "JSONWebToken-Core-Headers", - "classinstvars" : [ ], - "pools" : [ ], - "classvars" : [ ], - "instvars" : [ ], - "name" : "JWSHeader", - "type" : "normal" -} \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWSInvalidTokenFormat.class/README.md b/source/JSONWebToken-Core.package/JWSInvalidTokenFormat.class/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/source/JSONWebToken-Core.package/JWSInvalidTokenFormat.class/properties.json b/source/JSONWebToken-Core.package/JWSInvalidTokenFormat.class/properties.json deleted file mode 100644 index b7418c5..0000000 --- a/source/JSONWebToken-Core.package/JWSInvalidTokenFormat.class/properties.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "commentStamp" : "", - "super" : "Error", - "category" : "JSONWebToken-Core-Serialization", - "classinstvars" : [ ], - "pools" : [ ], - "classvars" : [ ], - "instvars" : [ ], - "name" : "JWSInvalidTokenFormat", - "type" : "normal" -} \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWSSerializer.class/README.md b/source/JSONWebToken-Core.package/JWSSerializer.class/README.md deleted file mode 100644 index f1267a8..0000000 --- a/source/JSONWebToken-Core.package/JWSSerializer.class/README.md +++ /dev/null @@ -1 +0,0 @@ -JSON Web signature serializer \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWSSerializer.class/class/base64UrlDecoded..st b/source/JSONWebToken-Core.package/JWSSerializer.class/class/base64UrlDecoded..st deleted file mode 100644 index 25bac76..0000000 --- a/source/JSONWebToken-Core.package/JWSSerializer.class/class/base64UrlDecoded..st +++ /dev/null @@ -1,7 +0,0 @@ -conversion -base64UrlDecoded: aBase64String - - "According to https://tools.ietf.org/html/rfc7519#page-4 the encoding needs to be base64Url. - The padding can be stripped as it is not used for transport in JWT, so we need to pad it just in case" - - ^ Base64UrlEncoder new decode: aBase64String base64Padded \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWSSerializer.class/class/base64UrlEncoded..st b/source/JSONWebToken-Core.package/JWSSerializer.class/class/base64UrlEncoded..st deleted file mode 100644 index e37c34a..0000000 --- a/source/JSONWebToken-Core.package/JWSSerializer.class/class/base64UrlEncoded..st +++ /dev/null @@ -1,7 +0,0 @@ -conversion -base64UrlEncoded: aByteArray - - "According to https://tools.ietf.org/html/rfc7519#page-4 the encoding needs to be base64Url. - The padding is stripped as it is not used for transport in JWT" - - ^ ( Base64UrlEncoder new encode: aByteArray ) copyWithoutAll: '=' \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWSSerializer.class/class/toJson..st b/source/JSONWebToken-Core.package/JWSSerializer.class/class/toJson..st deleted file mode 100644 index 129c526..0000000 --- a/source/JSONWebToken-Core.package/JWSSerializer.class/class/toJson..st +++ /dev/null @@ -1,3 +0,0 @@ -as yet unclassified -toJson: anObject - ^ NeoJSONWriter toString: anObject \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWSSerializer.class/instance/initialize.st b/source/JSONWebToken-Core.package/JWSSerializer.class/instance/initialize.st deleted file mode 100644 index 5c1f752..0000000 --- a/source/JSONWebToken-Core.package/JWSSerializer.class/instance/initialize.st +++ /dev/null @@ -1,4 +0,0 @@ -initialization -initialize - super initialize. - stream := String new writeStream. \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWSSerializer.class/properties.json b/source/JSONWebToken-Core.package/JWSSerializer.class/properties.json deleted file mode 100644 index 756f585..0000000 --- a/source/JSONWebToken-Core.package/JWSSerializer.class/properties.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "commentStamp" : "TorstenBergmann 8/13/2018 13:54", - "super" : "Object", - "category" : "JSONWebToken-Core-Serialization", - "classinstvars" : [ ], - "pools" : [ ], - "classvars" : [ ], - "instvars" : [ - "stream" - ], - "name" : "JWSSerializer", - "type" : "normal" -} \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/README.md b/source/JSONWebToken-Core.package/JWTClaimsSet.class/README.md deleted file mode 100644 index 186c51f..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/README.md +++ /dev/null @@ -1 +0,0 @@ -A set of specific claims \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/class/fromJson..st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/class/fromJson..st deleted file mode 100644 index df66d51..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/class/fromJson..st +++ /dev/null @@ -1,4 +0,0 @@ -as yet unclassified -fromJson: aString - ^ self new - setClaims: (NeoJSONReader fromString: aString) \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/asJson.st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/asJson.st deleted file mode 100644 index 5271eac..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/asJson.st +++ /dev/null @@ -1,3 +0,0 @@ -converting -asJson - ^ NeoJSONWriter toString: claims \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/at..st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/at..st deleted file mode 100644 index 51ba11a..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/at..st +++ /dev/null @@ -1,3 +0,0 @@ -accessing - basic -at: aString - ^ claims at: aString \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/at.put..st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/at.put..st deleted file mode 100644 index 012bdb8..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/at.put..st +++ /dev/null @@ -1,3 +0,0 @@ -accessing - basic -at: aString put: anObject - claims at: aString put: anObject \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/aud..st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/aud..st deleted file mode 100644 index b25734d..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/aud..st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -aud: aString - self at: 'aud' put: aString \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/aud.st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/aud.st deleted file mode 100644 index ca8b92d..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/aud.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -aud - ^ self at: 'aud' \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/audiences..st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/audiences..st deleted file mode 100644 index 1d4fdff..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/audiences..st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -audiences: anObject - self aud: anObject \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/audiences.st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/audiences.st deleted file mode 100644 index 83dc36c..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/audiences.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -audiences - ^ self aud \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/authTime..st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/authTime..st deleted file mode 100644 index 35f6abd..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/authTime..st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -authTime: anObject - self at: 'auth_time' put: anObject \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/authTime.st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/authTime.st deleted file mode 100644 index 445db27..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/authTime.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -authTime - ^ self at: 'auth_time' \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/authenticationContextClassReference..st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/authenticationContextClassReference..st deleted file mode 100644 index 48e7157..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/authenticationContextClassReference..st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -authenticationContextClassReference: anObject - self at: 'acr' put: anObject \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/authenticationContextClassReference.st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/authenticationContextClassReference.st deleted file mode 100644 index 4540fb7..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/authenticationContextClassReference.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -authenticationContextClassReference - ^ self at: 'acr' \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/authenticationMethodsReference..st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/authenticationMethodsReference..st deleted file mode 100644 index 5776404..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/authenticationMethodsReference..st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -authenticationMethodsReference: anObject - self at: 'amr' put: anObject \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/authenticationMethodsReference.st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/authenticationMethodsReference.st deleted file mode 100644 index e14c3a2..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/authenticationMethodsReference.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -authenticationMethodsReference - ^ self at: 'amr' \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/authorizedParty..st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/authorizedParty..st deleted file mode 100644 index a68b994..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/authorizedParty..st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -authorizedParty: anObject - self at: 'azp' put: anObject \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/authorizedParty.st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/authorizedParty.st deleted file mode 100644 index d02883f..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/authorizedParty.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -authorizedParty - ^ self at: 'azp' \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/claims.st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/claims.st deleted file mode 100644 index 7a211fe..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/claims.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -claims - ^ claims \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/exp..st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/exp..st deleted file mode 100644 index a46fbcb..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/exp..st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -exp: aNumber - self expirationTime: aNumber \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/exp.st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/exp.st deleted file mode 100644 index 9ad6146..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/exp.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -exp - ^ self expirationTime \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/expirationTime..st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/expirationTime..st deleted file mode 100644 index 1349bd7..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/expirationTime..st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -expirationTime: anObject - self at: 'exp' put: anObject \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/expirationTime.st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/expirationTime.st deleted file mode 100644 index 2829720..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/expirationTime.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -expirationTime - ^ self at: 'exp' \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/hasSameClaims..st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/hasSameClaims..st deleted file mode 100644 index 64337ff..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/hasSameClaims..st +++ /dev/null @@ -1,3 +0,0 @@ -testing -hasSameClaims: aDictionary - ^ (claims difference: aDictionary) isEmpty \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/hasSameElements..st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/hasSameElements..st deleted file mode 100644 index 3ed1c15..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/hasSameElements..st +++ /dev/null @@ -1,3 +0,0 @@ -testing -hasSameElements: anObject - ^ anObject hasSameClaims: claims \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/iat..st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/iat..st deleted file mode 100644 index 1c771c6..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/iat..st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -iat: anObject - self at: 'iat' put: anObject \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/iat.st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/iat.st deleted file mode 100644 index 3146e98..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/iat.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -iat - ^ self at: 'iat' \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/initialize.st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/initialize.st deleted file mode 100644 index 6a47d9e..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/initialize.st +++ /dev/null @@ -1,4 +0,0 @@ -initialize -initialize - super initialize. - claims := Dictionary new. \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/iss..st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/iss..st deleted file mode 100644 index 54cf6a7..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/iss..st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -iss: aString - self at: 'iss' put: aString \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/iss.st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/iss.st deleted file mode 100644 index 66282d3..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/iss.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -iss - ^ self at: 'iss' \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/issuedAt..st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/issuedAt..st deleted file mode 100644 index c0ed0f4..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/issuedAt..st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -issuedAt: anObject - self iat: anObject \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/issuedAt.st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/issuedAt.st deleted file mode 100644 index 15f70fb..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/issuedAt.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -issuedAt - ^ self iat \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/issuer..st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/issuer..st deleted file mode 100644 index 1b68ef8..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/issuer..st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -issuer: anObject - self iss: anObject \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/issuer.st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/issuer.st deleted file mode 100644 index 717faaa..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/issuer.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -issuer - ^ self iss \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/mimeType.st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/mimeType.st deleted file mode 100644 index 0c7ae59..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/mimeType.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -mimeType - ^ 'JWT' \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/nonce..st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/nonce..st deleted file mode 100644 index b116360..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/nonce..st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -nonce: anObject - self at: 'nonce' put: anObject \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/nonce.st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/nonce.st deleted file mode 100644 index 0536c25..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/nonce.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -nonce - ^ self at: 'nonce' \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/setClaims..st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/setClaims..st deleted file mode 100644 index 6e96961..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/setClaims..st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -setClaims: aCollection - claims := aCollection \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/sub..st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/sub..st deleted file mode 100644 index 2502d03..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/sub..st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -sub: aString - self at: 'sub' put: aString \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/sub.st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/sub.st deleted file mode 100644 index 2cd599d..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/sub.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -sub - ^ self at: 'sub' \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/subject..st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/subject..st deleted file mode 100644 index 708d051..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/subject..st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -subject: anObject - self sub: anObject \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/subject.st b/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/subject.st deleted file mode 100644 index 73951f5..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/instance/subject.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -subject - ^ self sub \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTClaimsSet.class/properties.json b/source/JSONWebToken-Core.package/JWTClaimsSet.class/properties.json deleted file mode 100644 index a8d7083..0000000 --- a/source/JSONWebToken-Core.package/JWTClaimsSet.class/properties.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "commentStamp" : "TorstenBergmann 8/13/2018 15:21", - "super" : "Object", - "category" : "JSONWebToken-Core-Base", - "classinstvars" : [ ], - "pools" : [ ], - "classvars" : [ ], - "instvars" : [ - "claims" - ], - "name" : "JWTClaimsSet", - "type" : "normal" -} \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTHeader.class/README.md b/source/JSONWebToken-Core.package/JWTHeader.class/README.md deleted file mode 100644 index f2ce405..0000000 --- a/source/JSONWebToken-Core.package/JWTHeader.class/README.md +++ /dev/null @@ -1 +0,0 @@ -JSON Web Token Header \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JWTHeader.class/properties.json b/source/JSONWebToken-Core.package/JWTHeader.class/properties.json deleted file mode 100644 index 63ca6c1..0000000 --- a/source/JSONWebToken-Core.package/JWTHeader.class/properties.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "commentStamp" : "TorstenBergmann 8/13/2018 13:50", - "super" : "JOSEHeader", - "category" : "JSONWebToken-Core-Headers", - "classinstvars" : [ ], - "pools" : [ ], - "classvars" : [ ], - "instvars" : [ ], - "name" : "JWTHeader", - "type" : "normal" -} \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JsonWebAlgorithm.class/README.md b/source/JSONWebToken-Core.package/JsonWebAlgorithm.class/README.md deleted file mode 100644 index c0b9ad8..0000000 --- a/source/JSONWebToken-Core.package/JsonWebAlgorithm.class/README.md +++ /dev/null @@ -1 +0,0 @@ -Abstract superclass for algorithms used for web encryption \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JsonWebAlgorithm.class/class/checkSignature.withKey..st b/source/JSONWebToken-Core.package/JsonWebAlgorithm.class/class/checkSignature.withKey..st deleted file mode 100644 index de4ad97..0000000 --- a/source/JSONWebToken-Core.package/JsonWebAlgorithm.class/class/checkSignature.withKey..st +++ /dev/null @@ -1,8 +0,0 @@ -sign -checkSignature: token withKey: key - "keep this method backward compatible also accepting already splitted parts" - self - checkSignatureOfParts: (token isString - ifTrue: [ $. split: token ] - ifFalse: [ token ]) - withKey: key \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JsonWebAlgorithm.class/class/checkSignatureOfParts.withKey..st b/source/JSONWebToken-Core.package/JsonWebAlgorithm.class/class/checkSignatureOfParts.withKey..st deleted file mode 100644 index c372e13..0000000 --- a/source/JSONWebToken-Core.package/JsonWebAlgorithm.class/class/checkSignatureOfParts.withKey..st +++ /dev/null @@ -1,3 +0,0 @@ -sign -checkSignatureOfParts: parts withKey: key - self subclassResponsibility \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JsonWebAlgorithm.class/class/isAbstract.st b/source/JSONWebToken-Core.package/JsonWebAlgorithm.class/class/isAbstract.st deleted file mode 100644 index c82bcae..0000000 --- a/source/JSONWebToken-Core.package/JsonWebAlgorithm.class/class/isAbstract.st +++ /dev/null @@ -1,4 +0,0 @@ -testing -isAbstract - - ^self name = #JsonWebAlgorithm \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JsonWebAlgorithm.class/class/named..st b/source/JSONWebToken-Core.package/JsonWebAlgorithm.class/class/named..st deleted file mode 100644 index 1af9873..0000000 --- a/source/JSONWebToken-Core.package/JsonWebAlgorithm.class/class/named..st +++ /dev/null @@ -1,4 +0,0 @@ -instance creation -named: aString - ^ self allSubclasses - detect: [ :each | each parameterValue = aString ] \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JsonWebAlgorithm.class/class/parameterValue.st b/source/JSONWebToken-Core.package/JsonWebAlgorithm.class/class/parameterValue.st deleted file mode 100644 index 105595c..0000000 --- a/source/JSONWebToken-Core.package/JsonWebAlgorithm.class/class/parameterValue.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -parameterValue - self shouldBeImplemented \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JsonWebAlgorithm.class/properties.json b/source/JSONWebToken-Core.package/JsonWebAlgorithm.class/properties.json deleted file mode 100644 index 8eaf30b..0000000 --- a/source/JSONWebToken-Core.package/JsonWebAlgorithm.class/properties.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "commentStamp" : "TorstenBergmann 8/13/2018 15:24", - "super" : "Object", - "category" : "JSONWebToken-Core-Algorithms", - "classinstvars" : [ ], - "pools" : [ ], - "classvars" : [ ], - "instvars" : [ ], - "name" : "JsonWebAlgorithm", - "type" : "normal" -} \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JsonWebSignature.class/README.md b/source/JSONWebToken-Core.package/JsonWebSignature.class/README.md deleted file mode 100644 index 4248f27..0000000 --- a/source/JSONWebToken-Core.package/JsonWebSignature.class/README.md +++ /dev/null @@ -1 +0,0 @@ -A JSON web signature \ 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 deleted file mode 100644 index 6d1eef3..0000000 --- a/source/JSONWebToken-Core.package/JsonWebSignature.class/class/materializeCompact.key..st +++ /dev/null @@ -1,4 +0,0 @@ -materializing -materializeCompact: 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 deleted file mode 100644 index 34db4b8..0000000 --- a/source/JSONWebToken-Core.package/JsonWebSignature.class/class/materializeCompact.key.checkSignature..st +++ /dev/null @@ -1,4 +0,0 @@ -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/^equals.st b/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/^equals.st deleted file mode 100644 index 41503ec..0000000 --- a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/^equals.st +++ /dev/null @@ -1,4 +0,0 @@ -comparing -= aWebSignature - ^ (aWebSignature hasSameProtectedHeader: protectedHeader) and: [ - aWebSignature hasSamePayload: payload ] \ 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 deleted file mode 100644 index 6a1dca0..0000000 --- a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/algorithm..st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -algorithm: anAlgorithm - self protectedHeader algorithm: anAlgorithm \ 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 deleted file mode 100644 index cf71a93..0000000 --- a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/algorithm.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -algorithm - ^ self protectedHeader algorithm \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/algorithmName..st b/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/algorithmName..st deleted file mode 100644 index d811302..0000000 --- a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/algorithmName..st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -algorithmName: aString - self algorithm: (JsonWebAlgorithm named: aString) \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/base64UrlDecoded..st b/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/base64UrlDecoded..st deleted file mode 100644 index c0084dd..0000000 --- a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/base64UrlDecoded..st +++ /dev/null @@ -1,4 +0,0 @@ -private -base64UrlDecoded: aBase64String - - ^ Base64UrlEncoder new decode: aBase64String base64Padded \ 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 deleted file mode 100644 index 0f319e6..0000000 --- a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/checkSignature..st +++ /dev/null @@ -1,10 +0,0 @@ -signature -checkSignature: aString - | token | - token := (aString isString not) - ifTrue: [ - "this seems to be the old usage handing out the parts collection so resemble" - $. join: aString ] - ifFalse: [ aString ]. - - self protectedHeader algorithm checkSignature: token withKey: key diff --git a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/compactSerialized.st b/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/compactSerialized.st deleted file mode 100644 index 5208c10..0000000 --- a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/compactSerialized.st +++ /dev/null @@ -1,3 +0,0 @@ -serialization -compactSerialized - ^ JWSCompactSerializer new serialize: self \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/hasSameHeader..st b/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/hasSameHeader..st deleted file mode 100644 index 0ce9c69..0000000 --- a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/hasSameHeader..st +++ /dev/null @@ -1,3 +0,0 @@ -testing -hasSameHeader: aJsonWebSignature - self shouldBeImplemented. \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/hasSamePayload..st b/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/hasSamePayload..st deleted file mode 100644 index 19c3943..0000000 --- a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/hasSamePayload..st +++ /dev/null @@ -1,4 +0,0 @@ -testing -hasSamePayload: aPayload - aPayload ifNil: [ ^ false ]. - ^ aPayload hasSameElements: payload \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/hasSameProtectedHeader..st b/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/hasSameProtectedHeader..st deleted file mode 100644 index 09a3520..0000000 --- a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/hasSameProtectedHeader..st +++ /dev/null @@ -1,4 +0,0 @@ -testing -hasSameProtectedHeader: aHeader - ^ protectedHeader = aHeader - \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/hash.st b/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/hash.st deleted file mode 100644 index abeb4ee..0000000 --- a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/hash.st +++ /dev/null @@ -1,3 +0,0 @@ -comparing -hash - ^ protectedHeader hash bitXor: payload hash \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/header.st b/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/header.st deleted file mode 100644 index b366901..0000000 --- a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/header.st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -header - ^ protectedHeader ifNil: [ - protectedHeader := self headerClass new ] \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/headerClass.st b/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/headerClass.st deleted file mode 100644 index e802eca..0000000 --- a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/headerClass.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -headerClass - ^ JWSHeader \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/key..st b/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/key..st deleted file mode 100644 index 9df0767..0000000 --- a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/key..st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -key: aString - key := aString \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/payload..st b/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/payload..st deleted file mode 100644 index 02c4df5..0000000 --- a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/payload..st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -payload: anObject - payload := anObject. diff --git a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/payload.st b/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/payload.st deleted file mode 100644 index 843e421..0000000 --- a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/payload.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -payload - ^ payload \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/protectedHeader.st b/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/protectedHeader.st deleted file mode 100644 index 0cd5488..0000000 --- a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/protectedHeader.st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -protectedHeader - ^ protectedHeader ifNil: [ - protectedHeader := self headerClass new ] \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/setProtectedHeader..st b/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/setProtectedHeader..st deleted file mode 100644 index 842a95f..0000000 --- a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/setProtectedHeader..st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -setProtectedHeader: aHeader - protectedHeader := aHeader \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/signatureFor..st b/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/signatureFor..st deleted file mode 100644 index 85bef7a..0000000 --- a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/signatureFor..st +++ /dev/null @@ -1,4 +0,0 @@ -signing -signatureFor: aString - ^ self protectedHeader algorithm - signMessage: aString withKey: key \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/writePayloadOn..st b/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/writePayloadOn..st deleted file mode 100644 index d79758c..0000000 --- a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/writePayloadOn..st +++ /dev/null @@ -1,3 +0,0 @@ -writing -writePayloadOn: aSerializer - aSerializer writePayload: payload \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/writeProtectedHeaderOn..st b/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/writeProtectedHeaderOn..st deleted file mode 100644 index ebafcf6..0000000 --- a/source/JSONWebToken-Core.package/JsonWebSignature.class/instance/writeProtectedHeaderOn..st +++ /dev/null @@ -1,3 +0,0 @@ -writing -writeProtectedHeaderOn: aSerializer - aSerializer writeHeader: protectedHeader \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/JsonWebSignature.class/properties.json b/source/JSONWebToken-Core.package/JsonWebSignature.class/properties.json deleted file mode 100644 index 167b8f5..0000000 --- a/source/JSONWebToken-Core.package/JsonWebSignature.class/properties.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "commentStamp" : "TorstenBergmann 8/13/2018 15:27", - "super" : "Object", - "category" : "JSONWebToken-Core-Base", - "classinstvars" : [ ], - "pools" : [ ], - "classvars" : [ ], - "instvars" : [ - "payload", - "key", - "protectedHeader" - ], - "name" : "JsonWebSignature", - "type" : "normal" -} \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/String.extension/properties.json b/source/JSONWebToken-Core.package/String.extension/properties.json deleted file mode 100644 index b20f2de..0000000 --- a/source/JSONWebToken-Core.package/String.extension/properties.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "name" : "String" -} \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/monticello.meta/categories.st b/source/JSONWebToken-Core.package/monticello.meta/categories.st deleted file mode 100644 index 7883c44..0000000 --- a/source/JSONWebToken-Core.package/monticello.meta/categories.st +++ /dev/null @@ -1,5 +0,0 @@ -SystemOrganization addCategory: #'JSONWebToken-Core'! -SystemOrganization addCategory: #'JSONWebToken-Core-Algorithms'! -SystemOrganization addCategory: #'JSONWebToken-Core-Base'! -SystemOrganization addCategory: #'JSONWebToken-Core-Headers'! -SystemOrganization addCategory: #'JSONWebToken-Core-Serialization'! diff --git a/source/JSONWebToken-Core.package/monticello.meta/initializers.st b/source/JSONWebToken-Core.package/monticello.meta/initializers.st deleted file mode 100644 index e69de29..0000000 diff --git a/source/JSONWebToken-Core.package/monticello.meta/package b/source/JSONWebToken-Core.package/monticello.meta/package deleted file mode 100644 index 1f62dd5..0000000 --- a/source/JSONWebToken-Core.package/monticello.meta/package +++ /dev/null @@ -1 +0,0 @@ -(name 'JSONWebToken-Core') \ No newline at end of file diff --git a/source/JSONWebToken-Core.package/properties.json b/source/JSONWebToken-Core.package/properties.json deleted file mode 100644 index 6f31cf5..0000000 --- a/source/JSONWebToken-Core.package/properties.json +++ /dev/null @@ -1 +0,0 @@ -{ } \ No newline at end of file diff --git a/source/JSONWebToken-Core/Base64UrlEncoder.class.st b/source/JSONWebToken-Core/Base64UrlEncoder.class.st new file mode 100644 index 0000000..aa9fa40 --- /dev/null +++ b/source/JSONWebToken-Core/Base64UrlEncoder.class.st @@ -0,0 +1,47 @@ +" +I am encoder/decoder for base 64 using an alphabet that's URL and filename safe according to https://tools.ietf.org/html/rfc4648#page-5. + +Base64 encoding is a technique to encode binary data as a string of characters that can be safely transported over various protocols. +Basically, every 3 bytes are encoded using 4 characters from an alphabet of 64. Each encoded character represents 6 bits. + + +" +Class { + #name : 'Base64UrlEncoder', + #superclass : 'Object', + #instVars : [ + 'encoder' + ], + #classVars : [ + 'URLSafeAlphabet' + ], + #category : 'JSONWebToken-Core-Serialization', + #package : 'JSONWebToken-Core', + #tag : 'Serialization' +} + +{ #category : 'class initialization' } +Base64UrlEncoder class >> initialize [ + + URLSafeAlphabet := String withAll: ( $A to: $Z ) , ( $a to: $z ) , ( $0 to: $9 ) , #($- $_) +] + +{ #category : 'converting' } +Base64UrlEncoder >> decode: string [ + + ^ encoder decode: string +] + +{ #category : 'converting' } +Base64UrlEncoder >> encode: byteArray [ + + ^ encoder encode: byteArray +] + +{ #category : 'initialization' } +Base64UrlEncoder >> initialize [ + + super initialize. + encoder := ZnBase64Encoder new. + encoder alphabet: URLSafeAlphabet +] diff --git a/source/JSONWebToken-Core/JOSEHeader.class.st b/source/JSONWebToken-Core/JOSEHeader.class.st new file mode 100644 index 0000000..516ce2f --- /dev/null +++ b/source/JSONWebToken-Core/JOSEHeader.class.st @@ -0,0 +1,57 @@ +" +Common superclass for Javascript Object Signing and Encryption headers (JOSE) +" +Class { + #name : 'JOSEHeader', + #superclass : 'Object', + #instVars : [ + 'properties' + ], + #category : 'JSONWebToken-Core-Headers', + #package : 'JSONWebToken-Core', + #tag : 'Headers' +} + +{ #category : 'as yet unclassified' } +JOSEHeader class >> neoJsonMapping: mapper [ + mapper for: self do: [ :mapping | + mapping + mapInstVar: #type to: #typ; + mapInstVar: #algorithm to: #alg ] + +] + +{ #category : 'comparing' } +JOSEHeader >> = aHeader [ + ^ aHeader hasSameElements: properties +] + +{ #category : 'testing' } +JOSEHeader >> hasSameElements: aDictionary [ + ^ (properties difference: aDictionary) isEmpty +] + +{ #category : 'comparing' } +JOSEHeader >> hash [ + ^ properties hash +] + +{ #category : 'accessing' } +JOSEHeader >> typ [ + ^ self type +] + +{ #category : 'accessing' } +JOSEHeader >> typ: aString [ + self type: aString +] + +{ #category : 'accessing' } +JOSEHeader >> type [ + ^ properties at: 'typ' +] + +{ #category : 'accessing' } +JOSEHeader >> type: anObject [ + properties at: 'typ' put: anObject +] diff --git a/source/JSONWebToken-Core/JWAHMACSHA256.class.st b/source/JSONWebToken-Core/JWAHMACSHA256.class.st new file mode 100644 index 0000000..5320fed --- /dev/null +++ b/source/JSONWebToken-Core/JWAHMACSHA256.class.st @@ -0,0 +1,34 @@ +" +HMAC SHA256 +" +Class { + #name : 'JWAHMACSHA256', + #superclass : 'JsonWebAlgorithm', + #category : 'JSONWebToken-Core-Algorithms', + #package : 'JSONWebToken-Core', + #tag : 'Algorithms' +} + +{ #category : 'sign' } +JWAHMACSHA256 class >> checkSignatureOfParts: parts withKey: key [ + (self + signMessage: + ($. + join: + {parts first. + parts second}) withKey: key) + = (Base64UrlEncoder new decode: parts third base64Padded) + ifFalse: [ Error signal: 'signature does not match' ] +] + +{ #category : 'accessing' } +JWAHMACSHA256 class >> parameterValue [ + ^ 'HS256' +] + +{ #category : 'sign' } +JWAHMACSHA256 class >> signMessage: aString withKey: anObject [ + ^ ((HMAC on: SHA256) + key: anObject asByteArray; + digestMessage: aString asByteArray) +] diff --git a/source/JSONWebToken-Core/JWANone.class.st b/source/JSONWebToken-Core/JWANone.class.st new file mode 100644 index 0000000..ac252e7 --- /dev/null +++ b/source/JSONWebToken-Core/JWANone.class.st @@ -0,0 +1,25 @@ +" +An empty algorithm for not signing +" +Class { + #name : 'JWANone', + #superclass : 'JsonWebAlgorithm', + #category : 'JSONWebToken-Core-Algorithms', + #package : 'JSONWebToken-Core', + #tag : 'Algorithms' +} + +{ #category : 'sign' } +JWANone class >> checkSignatureOfParts: parts withKey: key [ + +] + +{ #category : 'accessing' } +JWANone class >> parameterValue [ + ^ 'none' +] + +{ #category : 'signing' } +JWANone class >> signMessage: aString withKey: aKeyString [ + ^ #[] +] diff --git a/source/JSONWebToken-Core/JWCryptoHeader.class.st b/source/JSONWebToken-Core/JWCryptoHeader.class.st new file mode 100644 index 0000000..873299c --- /dev/null +++ b/source/JSONWebToken-Core/JWCryptoHeader.class.st @@ -0,0 +1,62 @@ +" +Common superclass for encrypted headers +" +Class { + #name : 'JWCryptoHeader', + #superclass : 'JOSEHeader', + #instVars : [ + 'algorithm' + ], + #category : 'JSONWebToken-Core-Headers', + #package : 'JSONWebToken-Core', + #tag : 'Headers' +} + +{ #category : 'accessing' } +JWCryptoHeader >> alg [ + ^ properties at: 'alg' +] + +{ #category : 'accessing' } +JWCryptoHeader >> alg: anObject [ + properties at: 'alg' put: anObject +] + +{ #category : 'accessing' } +JWCryptoHeader >> algorithm [ + ^ algorithm +] + +{ #category : 'accessing' } +JWCryptoHeader >> algorithm: anObject [ + algorithm := anObject. + self alg: anObject parameterValue +] + +{ #category : 'converting' } +JWCryptoHeader >> asJson [ + ^ NeoJSONWriter toString: (properties copy at: 'alg' put: algorithm parameterValue; yourself) +] + +{ #category : 'accessing' } +JWCryptoHeader >> contentType: aString [ + properties at: 'typ' put: aString +] + +{ #category : 'initialization' } +JWCryptoHeader >> initialize [ + super initialize. + properties := SmallDictionary new +] + +{ #category : 'accessing' } +JWCryptoHeader >> registeredHeaders [ + ^ #( typ cty ) +] + +{ #category : 'accessing' } +JWCryptoHeader >> setProperties: aDictionary [ + properties := aDictionary. + (properties includesKey: 'alg') ifTrue: [ + algorithm := JsonWebAlgorithm named: (properties at: 'alg') ] +] diff --git a/source/JSONWebToken-Core/JWEHeader.class.st b/source/JSONWebToken-Core/JWEHeader.class.st new file mode 100644 index 0000000..b37834b --- /dev/null +++ b/source/JSONWebToken-Core/JWEHeader.class.st @@ -0,0 +1,10 @@ +" +JSON Web encryption header +" +Class { + #name : 'JWEHeader', + #superclass : 'JWCryptoHeader', + #category : 'JSONWebToken-Core-Headers', + #package : 'JSONWebToken-Core', + #tag : 'Headers' +} diff --git a/source/JSONWebToken-Core/JWSCompactSerializer.class.st b/source/JSONWebToken-Core/JWSCompactSerializer.class.st new file mode 100644 index 0000000..7823920 --- /dev/null +++ b/source/JSONWebToken-Core/JWSCompactSerializer.class.st @@ -0,0 +1,58 @@ +" +A JSON Web signature serializer serializing in a more +compact Base-64 encoded format (using double dispatching) + +" +Class { + #name : 'JWSCompactSerializer', + #superclass : 'JWSSerializer', + #category : 'JSONWebToken-Core-Serialization', + #package : 'JSONWebToken-Core', + #tag : 'Serialization' +} + +{ #category : 'reading' } +JWSCompactSerializer >> materialize: aString key: aKeyString [ + ^ self materialize: aString key: aKeyString checkSignature: true +] + +{ #category : 'reading' } +JWSCompactSerializer >> materialize: aString key: aKeyString checkSignature: checkSignature [ + + | parts header jws | + + parts := $. split: aString. + (parts size = 3) ifFalse: [ JWSInvalidTokenFormat signal: 'the format of the token is invalid' ]. + header := JWSHeader fromJson: ( self class base64UrlDecoded: parts first ) utf8Decoded. + jws := JsonWebSignature new + key: aKeyString; + setProtectedHeader: header. + checkSignature + ifTrue: [ jws checkSignature: parts ]. + ^ jws payload: ( JWTClaimsSet fromJson: ( self class base64UrlDecoded: parts second ) utf8Decoded ) +] + +{ #category : 'serialization' } +JWSCompactSerializer >> serialize: aWebSignature [ + | signature | + aWebSignature writeProtectedHeaderOn: self. + stream nextPut: $. . + aWebSignature writePayloadOn: self. + + signature := aWebSignature signatureFor: stream contents. + stream + nextPut: $.; + nextPutAll: (self class base64UrlEncoded: signature). + ^ stream contents +] + +{ #category : 'writing' } +JWSCompactSerializer >> writeHeader: aHeader [ + stream nextPutAll: (self class base64UrlEncoded: aHeader asJson asByteArray) + +] + +{ #category : 'writing' } +JWSCompactSerializer >> writePayload: anObject [ + stream nextPutAll: (self class base64UrlEncoded: anObject asJson utf8Encoded) +] diff --git a/source/JSONWebToken-Core/JWSHeader.class.st b/source/JSONWebToken-Core/JWSHeader.class.st new file mode 100644 index 0000000..25a30b8 --- /dev/null +++ b/source/JSONWebToken-Core/JWSHeader.class.st @@ -0,0 +1,21 @@ +" +JSON Web signature header +" +Class { + #name : 'JWSHeader', + #superclass : 'JWCryptoHeader', + #category : 'JSONWebToken-Core-Headers', + #package : 'JSONWebToken-Core', + #tag : 'Headers' +} + +{ #category : 'instance-creation' } +JWSHeader class >> fromJson: aString [ + ^ self new + setProperties: (NeoJSONReader fromString: aString) +] + +{ #category : 'testing' } +JWSHeader >> isEqualTo: aHeader [ + ^ aHeader hasSameElements: properties +] diff --git a/source/JSONWebToken-Core/JWSInvalidTokenFormat.class.st b/source/JSONWebToken-Core/JWSInvalidTokenFormat.class.st new file mode 100644 index 0000000..ebed76d --- /dev/null +++ b/source/JSONWebToken-Core/JWSInvalidTokenFormat.class.st @@ -0,0 +1,7 @@ +Class { + #name : 'JWSInvalidTokenFormat', + #superclass : 'Error', + #category : 'JSONWebToken-Core-Serialization', + #package : 'JSONWebToken-Core', + #tag : 'Serialization' +} diff --git a/source/JSONWebToken-Core/JWSSerializer.class.st b/source/JSONWebToken-Core/JWSSerializer.class.st new file mode 100644 index 0000000..bfd75b3 --- /dev/null +++ b/source/JSONWebToken-Core/JWSSerializer.class.st @@ -0,0 +1,42 @@ +" +JSON Web signature serializer +" +Class { + #name : 'JWSSerializer', + #superclass : 'Object', + #instVars : [ + 'stream' + ], + #category : 'JSONWebToken-Core-Serialization', + #package : 'JSONWebToken-Core', + #tag : 'Serialization' +} + +{ #category : 'conversion' } +JWSSerializer class >> base64UrlDecoded: aBase64String [ + + "According to https://tools.ietf.org/html/rfc7519#page-4 the encoding needs to be base64Url. + The padding can be stripped as it is not used for transport in JWT, so we need to pad it just in case" + + ^ Base64UrlEncoder new decode: aBase64String base64Padded +] + +{ #category : 'conversion' } +JWSSerializer class >> base64UrlEncoded: aByteArray [ + + "According to https://tools.ietf.org/html/rfc7519#page-4 the encoding needs to be base64Url. + The padding is stripped as it is not used for transport in JWT" + + ^ ( Base64UrlEncoder new encode: aByteArray ) copyWithoutAll: '=' +] + +{ #category : 'as yet unclassified' } +JWSSerializer class >> toJson: anObject [ + ^ NeoJSONWriter toString: anObject +] + +{ #category : 'initialization' } +JWSSerializer >> initialize [ + super initialize. + stream := String new writeStream. +] diff --git a/source/JSONWebToken-Core/JWTClaimsSet.class.st b/source/JSONWebToken-Core/JWTClaimsSet.class.st new file mode 100644 index 0000000..b9856c9 --- /dev/null +++ b/source/JSONWebToken-Core/JWTClaimsSet.class.st @@ -0,0 +1,215 @@ +" +A set of specific claims +" +Class { + #name : 'JWTClaimsSet', + #superclass : 'Object', + #instVars : [ + 'claims' + ], + #category : 'JSONWebToken-Core-Base', + #package : 'JSONWebToken-Core', + #tag : 'Base' +} + +{ #category : 'as yet unclassified' } +JWTClaimsSet class >> fromJson: aString [ + ^ self new + setClaims: (NeoJSONReader fromString: aString) +] + +{ #category : 'converting' } +JWTClaimsSet >> asJson [ + ^ NeoJSONWriter toString: claims +] + +{ #category : 'accessing - basic' } +JWTClaimsSet >> at: aString [ + ^ claims at: aString +] + +{ #category : 'accessing - basic' } +JWTClaimsSet >> at: aString put: anObject [ + claims at: aString put: anObject +] + +{ #category : 'accessing' } +JWTClaimsSet >> aud [ + ^ self at: 'aud' +] + +{ #category : 'accessing' } +JWTClaimsSet >> aud: aString [ + self at: 'aud' put: aString +] + +{ #category : 'accessing' } +JWTClaimsSet >> audiences [ + ^ self aud +] + +{ #category : 'accessing' } +JWTClaimsSet >> audiences: anObject [ + self aud: anObject +] + +{ #category : 'accessing' } +JWTClaimsSet >> authTime [ + ^ self at: 'auth_time' +] + +{ #category : 'accessing' } +JWTClaimsSet >> authTime: anObject [ + self at: 'auth_time' put: anObject +] + +{ #category : 'accessing' } +JWTClaimsSet >> authenticationContextClassReference [ + ^ self at: 'acr' +] + +{ #category : 'accessing' } +JWTClaimsSet >> authenticationContextClassReference: anObject [ + self at: 'acr' put: anObject +] + +{ #category : 'accessing' } +JWTClaimsSet >> authenticationMethodsReference [ + ^ self at: 'amr' +] + +{ #category : 'accessing' } +JWTClaimsSet >> authenticationMethodsReference: anObject [ + self at: 'amr' put: anObject +] + +{ #category : 'accessing' } +JWTClaimsSet >> authorizedParty [ + ^ self at: 'azp' +] + +{ #category : 'accessing' } +JWTClaimsSet >> authorizedParty: anObject [ + self at: 'azp' put: anObject +] + +{ #category : 'accessing' } +JWTClaimsSet >> claims [ + ^ claims +] + +{ #category : 'accessing' } +JWTClaimsSet >> exp [ + ^ self expirationTime +] + +{ #category : 'accessing' } +JWTClaimsSet >> exp: aNumber [ + self expirationTime: aNumber +] + +{ #category : 'accessing' } +JWTClaimsSet >> expirationTime [ + ^ self at: 'exp' +] + +{ #category : 'accessing' } +JWTClaimsSet >> expirationTime: anObject [ + self at: 'exp' put: anObject +] + +{ #category : 'testing' } +JWTClaimsSet >> hasSameClaims: aDictionary [ + ^ (claims difference: aDictionary) isEmpty +] + +{ #category : 'testing' } +JWTClaimsSet >> hasSameElements: anObject [ + ^ anObject hasSameClaims: claims +] + +{ #category : 'accessing' } +JWTClaimsSet >> iat [ + ^ self at: 'iat' +] + +{ #category : 'accessing' } +JWTClaimsSet >> iat: anObject [ + self at: 'iat' put: anObject +] + +{ #category : 'initialize' } +JWTClaimsSet >> initialize [ + super initialize. + claims := Dictionary new. +] + +{ #category : 'accessing' } +JWTClaimsSet >> iss [ + ^ self at: 'iss' +] + +{ #category : 'accessing' } +JWTClaimsSet >> iss: aString [ + self at: 'iss' put: aString +] + +{ #category : 'accessing' } +JWTClaimsSet >> issuedAt [ + ^ self iat +] + +{ #category : 'accessing' } +JWTClaimsSet >> issuedAt: anObject [ + self iat: anObject +] + +{ #category : 'accessing' } +JWTClaimsSet >> issuer [ + ^ self iss +] + +{ #category : 'accessing' } +JWTClaimsSet >> issuer: anObject [ + self iss: anObject +] + +{ #category : 'accessing' } +JWTClaimsSet >> mimeType [ + ^ 'JWT' +] + +{ #category : 'accessing' } +JWTClaimsSet >> nonce [ + ^ self at: 'nonce' +] + +{ #category : 'accessing' } +JWTClaimsSet >> nonce: anObject [ + self at: 'nonce' put: anObject +] + +{ #category : 'accessing' } +JWTClaimsSet >> setClaims: aCollection [ + claims := aCollection +] + +{ #category : 'accessing' } +JWTClaimsSet >> sub [ + ^ self at: 'sub' +] + +{ #category : 'accessing' } +JWTClaimsSet >> sub: aString [ + self at: 'sub' put: aString +] + +{ #category : 'accessing' } +JWTClaimsSet >> subject [ + ^ self sub +] + +{ #category : 'accessing' } +JWTClaimsSet >> subject: anObject [ + self sub: anObject +] diff --git a/source/JSONWebToken-Core/JWTHeader.class.st b/source/JSONWebToken-Core/JWTHeader.class.st new file mode 100644 index 0000000..979a433 --- /dev/null +++ b/source/JSONWebToken-Core/JWTHeader.class.st @@ -0,0 +1,10 @@ +" +JSON Web Token Header +" +Class { + #name : 'JWTHeader', + #superclass : 'JOSEHeader', + #category : 'JSONWebToken-Core-Headers', + #package : 'JSONWebToken-Core', + #tag : 'Headers' +} diff --git a/source/JSONWebToken-Core/JsonWebAlgorithm.class.st b/source/JSONWebToken-Core/JsonWebAlgorithm.class.st new file mode 100644 index 0000000..93a6ea7 --- /dev/null +++ b/source/JSONWebToken-Core/JsonWebAlgorithm.class.st @@ -0,0 +1,42 @@ +" +Abstract superclass for algorithms used for web encryption +" +Class { + #name : 'JsonWebAlgorithm', + #superclass : 'Object', + #category : 'JSONWebToken-Core-Algorithms', + #package : 'JSONWebToken-Core', + #tag : 'Algorithms' +} + +{ #category : 'sign' } +JsonWebAlgorithm class >> checkSignature: token withKey: key [ + "keep this method backward compatible also accepting already splitted parts" + self + checkSignatureOfParts: (token isString + ifTrue: [ $. split: token ] + ifFalse: [ token ]) + withKey: key +] + +{ #category : 'sign' } +JsonWebAlgorithm class >> checkSignatureOfParts: parts withKey: key [ + self subclassResponsibility +] + +{ #category : 'testing' } +JsonWebAlgorithm class >> isAbstract [ + + ^self name = #JsonWebAlgorithm +] + +{ #category : 'instance creation' } +JsonWebAlgorithm class >> named: aString [ + ^ self allSubclasses + detect: [ :each | each parameterValue = aString ] +] + +{ #category : 'accessing' } +JsonWebAlgorithm class >> parameterValue [ + self shouldBeImplemented +] diff --git a/source/JSONWebToken-Core/JsonWebSignature.class.st b/source/JSONWebToken-Core/JsonWebSignature.class.st new file mode 100644 index 0000000..96dc875 --- /dev/null +++ b/source/JSONWebToken-Core/JsonWebSignature.class.st @@ -0,0 +1,148 @@ +" +A JSON web signature +" +Class { + #name : 'JsonWebSignature', + #superclass : 'Object', + #instVars : [ + 'payload', + 'key', + 'protectedHeader' + ], + #category : 'JSONWebToken-Core-Base', + #package : 'JSONWebToken-Core', + #tag : 'Base' +} + +{ #category : 'materializing' } +JsonWebSignature class >> materializeCompact: aString key: aKeyString [ + ^ self materializeCompact: aString key: aKeyString checkSignature: true + +] + +{ #category : 'materializing' } +JsonWebSignature class >> materializeCompact: aString key: aKeyString checkSignature: checkSignature [ + ^ JWSCompactSerializer new materialize: aString key: aKeyString checkSignature: checkSignature + +] + +{ #category : 'comparing' } +JsonWebSignature >> = aWebSignature [ + ^ (aWebSignature hasSameProtectedHeader: protectedHeader) and: [ + aWebSignature hasSamePayload: payload ] +] + +{ #category : 'accessing' } +JsonWebSignature >> algorithm [ + ^ self protectedHeader algorithm +] + +{ #category : 'accessing' } +JsonWebSignature >> algorithm: anAlgorithm [ + self protectedHeader algorithm: anAlgorithm +] + +{ #category : 'accessing' } +JsonWebSignature >> algorithmName: aString [ + self algorithm: (JsonWebAlgorithm named: aString) +] + +{ #category : 'private' } +JsonWebSignature >> base64UrlDecoded: aBase64String [ + + ^ Base64UrlEncoder new decode: aBase64String base64Padded +] + +{ #category : 'signature' } +JsonWebSignature >> checkSignature: aString [ + | token | + token := (aString isString not) + ifTrue: [ + "this seems to be the old usage handing out the parts collection so resemble" + $. join: aString ] + ifFalse: [ aString ]. + + self protectedHeader algorithm checkSignature: token withKey: key + +] + +{ #category : 'serialization' } +JsonWebSignature >> compactSerialized [ + ^ JWSCompactSerializer new serialize: self +] + +{ #category : 'testing' } +JsonWebSignature >> hasSameHeader: aJsonWebSignature [ + self shouldBeImplemented. +] + +{ #category : 'testing' } +JsonWebSignature >> hasSamePayload: aPayload [ + aPayload ifNil: [ ^ false ]. + ^ aPayload hasSameElements: payload +] + +{ #category : 'testing' } +JsonWebSignature >> hasSameProtectedHeader: aHeader [ + ^ protectedHeader = aHeader + +] + +{ #category : 'comparing' } +JsonWebSignature >> hash [ + ^ protectedHeader hash bitXor: payload hash +] + +{ #category : 'accessing' } +JsonWebSignature >> header [ + ^ protectedHeader ifNil: [ + protectedHeader := self headerClass new ] +] + +{ #category : 'accessing' } +JsonWebSignature >> headerClass [ + ^ JWSHeader +] + +{ #category : 'accessing' } +JsonWebSignature >> key: aString [ + key := aString +] + +{ #category : 'accessing' } +JsonWebSignature >> payload [ + ^ payload +] + +{ #category : 'accessing' } +JsonWebSignature >> payload: anObject [ + payload := anObject. + +] + +{ #category : 'accessing' } +JsonWebSignature >> protectedHeader [ + ^ protectedHeader ifNil: [ + protectedHeader := self headerClass new ] +] + +{ #category : 'accessing' } +JsonWebSignature >> setProtectedHeader: aHeader [ + protectedHeader := aHeader +] + +{ #category : 'signing' } +JsonWebSignature >> signatureFor: aString [ + ^ self protectedHeader algorithm + signMessage: aString withKey: key +] + +{ #category : 'writing' } +JsonWebSignature >> writePayloadOn: aSerializer [ + aSerializer writePayload: payload +] + +{ #category : 'writing' } +JsonWebSignature >> writeProtectedHeaderOn: aSerializer [ + aSerializer writeHeader: protectedHeader +] diff --git a/source/JSONWebToken-Core.package/String.extension/instance/base64Padded.st b/source/JSONWebToken-Core/String.extension.st similarity index 67% rename from source/JSONWebToken-Core.package/String.extension/instance/base64Padded.st rename to source/JSONWebToken-Core/String.extension.st index eeeceab..f53dab6 100644 --- a/source/JSONWebToken-Core.package/String.extension/instance/base64Padded.st +++ b/source/JSONWebToken-Core/String.extension.st @@ -1,5 +1,7 @@ -*JSONWebToken-Core -base64Padded +Extension { #name : 'String' } + +{ #category : '*JSONWebToken-Core' } +String >> base64Padded [ | paddedString | paddedString := ((self size \\ 4) = 0) ifTrue: [ self ] @@ -8,4 +10,5 @@ base64Padded stream nextPutAll: self. (4 - (self size \\ 4)) timesRepeat: [ stream nextPut: $= ] ] ]. - ^ paddedString \ No newline at end of file + ^ paddedString +] diff --git a/source/JSONWebToken-Core/package.st b/source/JSONWebToken-Core/package.st new file mode 100644 index 0000000..0195fdc --- /dev/null +++ b/source/JSONWebToken-Core/package.st @@ -0,0 +1 @@ +Package { #name : 'JSONWebToken-Core' } diff --git a/source/JSONWebToken-OpenSSL-Tests.package/.filetree b/source/JSONWebToken-OpenSSL-Tests.package/.filetree deleted file mode 100644 index 57a6797..0000000 --- a/source/JSONWebToken-OpenSSL-Tests.package/.filetree +++ /dev/null @@ -1,5 +0,0 @@ -{ - "separateMethodMetaAndSource" : false, - "noMethodMetaData" : true, - "useCypressPropertiesFile" : true -} \ No newline at end of file diff --git a/source/JSONWebToken-OpenSSL-Tests.package/JSONWebTokenOpenSSLTest.class/README.md b/source/JSONWebToken-OpenSSL-Tests.package/JSONWebTokenOpenSSLTest.class/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/source/JSONWebToken-OpenSSL-Tests.package/JSONWebTokenOpenSSLTest.class/properties.json b/source/JSONWebToken-OpenSSL-Tests.package/JSONWebTokenOpenSSLTest.class/properties.json deleted file mode 100644 index 0e78368..0000000 --- a/source/JSONWebToken-OpenSSL-Tests.package/JSONWebTokenOpenSSLTest.class/properties.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "commentStamp" : "", - "super" : "TestCase", - "category" : "JSONWebToken-OpenSSL-Tests", - "classinstvars" : [ ], - "pools" : [ ], - "classvars" : [ ], - "instvars" : [ ], - "name" : "JSONWebTokenOpenSSLTest", - "type" : "normal" -} \ No newline at end of file diff --git a/source/JSONWebToken-OpenSSL-Tests.package/monticello.meta/categories.st b/source/JSONWebToken-OpenSSL-Tests.package/monticello.meta/categories.st deleted file mode 100644 index f43e785..0000000 --- a/source/JSONWebToken-OpenSSL-Tests.package/monticello.meta/categories.st +++ /dev/null @@ -1 +0,0 @@ -SystemOrganization addCategory: #'JSONWebToken-OpenSSL-Tests'! diff --git a/source/JSONWebToken-OpenSSL-Tests.package/monticello.meta/initializers.st b/source/JSONWebToken-OpenSSL-Tests.package/monticello.meta/initializers.st deleted file mode 100644 index e69de29..0000000 diff --git a/source/JSONWebToken-OpenSSL-Tests.package/monticello.meta/package b/source/JSONWebToken-OpenSSL-Tests.package/monticello.meta/package deleted file mode 100644 index 2f41cbc..0000000 --- a/source/JSONWebToken-OpenSSL-Tests.package/monticello.meta/package +++ /dev/null @@ -1 +0,0 @@ -(name 'JSONWebToken-OpenSSL-Tests') \ No newline at end of file diff --git a/source/JSONWebToken-OpenSSL-Tests.package/properties.json b/source/JSONWebToken-OpenSSL-Tests.package/properties.json deleted file mode 100644 index 6f31cf5..0000000 --- a/source/JSONWebToken-OpenSSL-Tests.package/properties.json +++ /dev/null @@ -1 +0,0 @@ -{ } \ No newline at end of file diff --git a/source/JSONWebToken-OpenSSL-Tests.package/JSONWebTokenOpenSSLTest.class/instance/testRSAEncoding.st b/source/JSONWebToken-OpenSSL-Tests/JSONWebTokenOpenSSLTest.class.st similarity index 90% rename from source/JSONWebToken-OpenSSL-Tests.package/JSONWebTokenOpenSSLTest.class/instance/testRSAEncoding.st rename to source/JSONWebToken-OpenSSL-Tests/JSONWebTokenOpenSSLTest.class.st index 3cf0c99..006e8fd 100644 --- a/source/JSONWebToken-OpenSSL-Tests.package/JSONWebTokenOpenSSLTest.class/instance/testRSAEncoding.st +++ b/source/JSONWebToken-OpenSSL-Tests/JSONWebTokenOpenSSLTest.class.st @@ -1,5 +1,12 @@ -tests -testRSAEncoding +Class { + #name : 'JSONWebTokenOpenSSLTest', + #superclass : 'TestCase', + #category : 'JSONWebToken-OpenSSL-Tests', + #package : 'JSONWebToken-OpenSSL-Tests' +} + +{ #category : 'tests' } +JSONWebTokenOpenSSLTest >> testRSAEncoding [ "This test verifies the token serialization against https://jwt.io/" @@ -46,4 +53,5 @@ jg/3747WSsf/zBTcHihTRBdAv6OmdhV4/dD5YBfLAkLrd+mX7iE= self assert: tokenString equals: - 'eyJhbGciOiJSUzI1NiJ9.eyJzY29wZSI6InJlYWQ6b3BlcmF0aW9ucyByZWFkOm1ldHJpY3MgZXhlY3V0ZTpoZWFsdGgtY2hlY2sgcmVhZDphcHBsaWNhdGlvbi1pbmZvIGV4ZWN1dGU6YXBwbGljYXRpb24tY29udHJvbCByZWFkOmFwcGxpY2F0aW9uLWNvbmZpZ3VyYXRpb24ifQ.GAOd8yN4b1R85hF4BrI7SUtdrQClMrymg7BaZoSIPezc9j-qBvIzJNcZT0a_hE44v8XUhHQJaaMzCgEoIWvN_i31RhL-NT_d85m2jm1HAd1hdePveS5shgYGVa0YUloRqLUsaTK03spCe3AayHBxG0-IJdw5ZZ85grce1JFc-T3uxGE_meuSBSYoW8QWEQ7hyBkHrJX0Twu1W0VMRGQw1UDnur2xxVZnz66iAYEQVZUQmsbMqgwOPETNvlvfmTQJq4V_hbc9bNmzJwo8TeoH5_lUYkPp5wWtT3H7dZpNEROP8QGgHiO9Y8ByKOBSrlNOID0pBvNlRbOAz_2Vmiir-g' \ No newline at end of file + 'eyJhbGciOiJSUzI1NiJ9.eyJzY29wZSI6InJlYWQ6b3BlcmF0aW9ucyByZWFkOm1ldHJpY3MgZXhlY3V0ZTpoZWFsdGgtY2hlY2sgcmVhZDphcHBsaWNhdGlvbi1pbmZvIGV4ZWN1dGU6YXBwbGljYXRpb24tY29udHJvbCByZWFkOmFwcGxpY2F0aW9uLWNvbmZpZ3VyYXRpb24ifQ.GAOd8yN4b1R85hF4BrI7SUtdrQClMrymg7BaZoSIPezc9j-qBvIzJNcZT0a_hE44v8XUhHQJaaMzCgEoIWvN_i31RhL-NT_d85m2jm1HAd1hdePveS5shgYGVa0YUloRqLUsaTK03spCe3AayHBxG0-IJdw5ZZ85grce1JFc-T3uxGE_meuSBSYoW8QWEQ7hyBkHrJX0Twu1W0VMRGQw1UDnur2xxVZnz66iAYEQVZUQmsbMqgwOPETNvlvfmTQJq4V_hbc9bNmzJwo8TeoH5_lUYkPp5wWtT3H7dZpNEROP8QGgHiO9Y8ByKOBSrlNOID0pBvNlRbOAz_2Vmiir-g' +] diff --git a/source/JSONWebToken-OpenSSL-Tests/package.st b/source/JSONWebToken-OpenSSL-Tests/package.st new file mode 100644 index 0000000..f907b73 --- /dev/null +++ b/source/JSONWebToken-OpenSSL-Tests/package.st @@ -0,0 +1 @@ +Package { #name : 'JSONWebToken-OpenSSL-Tests' } diff --git a/source/JSONWebToken-OpenSSL.package/.filetree b/source/JSONWebToken-OpenSSL.package/.filetree deleted file mode 100644 index 57a6797..0000000 --- a/source/JSONWebToken-OpenSSL.package/.filetree +++ /dev/null @@ -1,5 +0,0 @@ -{ - "separateMethodMetaAndSource" : false, - "noMethodMetaData" : true, - "useCypressPropertiesFile" : true -} \ No newline at end of file diff --git a/source/JSONWebToken-OpenSSL.package/JWARSASHA256.class/README.md b/source/JSONWebToken-OpenSSL.package/JWARSASHA256.class/README.md deleted file mode 100644 index c96d421..0000000 --- a/source/JSONWebToken-OpenSSL.package/JWARSASHA256.class/README.md +++ /dev/null @@ -1 +0,0 @@ -RSA SHA256 \ No newline at end of file diff --git a/source/JSONWebToken-OpenSSL.package/JWARSASHA256.class/class/parameterValue.st b/source/JSONWebToken-OpenSSL.package/JWARSASHA256.class/class/parameterValue.st deleted file mode 100644 index 0642aed..0000000 --- a/source/JSONWebToken-OpenSSL.package/JWARSASHA256.class/class/parameterValue.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -parameterValue - ^ 'RS256' \ No newline at end of file diff --git a/source/JSONWebToken-OpenSSL.package/JWARSASHA256.class/class/signMessage.withKey..st b/source/JSONWebToken-OpenSSL.package/JWARSASHA256.class/class/signMessage.withKey..st deleted file mode 100644 index 5dbbcb1..0000000 --- a/source/JSONWebToken-OpenSSL.package/JWARSASHA256.class/class/signMessage.withKey..st +++ /dev/null @@ -1,8 +0,0 @@ -sign -signMessage: message withKey: anObject - | pkey sig | - pkey := LcEvpPublicKey setRSA: (LcRSA fromPemString: anObject). - message pinInMemory. - sig := [ pkey digestSignMessage: message ] - ensure: [ message unpinInMemory ]. - ^ sig \ No newline at end of file diff --git a/source/JSONWebToken-OpenSSL.package/JWARSASHA256.class/properties.json b/source/JSONWebToken-OpenSSL.package/JWARSASHA256.class/properties.json deleted file mode 100644 index 3509e26..0000000 --- a/source/JSONWebToken-OpenSSL.package/JWARSASHA256.class/properties.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "commentStamp" : "TorstenBergmann 8/13/2018 15:25", - "super" : "JsonWebAlgorithm", - "category" : "JSONWebToken-OpenSSL", - "classinstvars" : [ ], - "pools" : [ ], - "classvars" : [ ], - "instvars" : [ ], - "name" : "JWARSASHA256", - "type" : "normal" -} \ No newline at end of file diff --git a/source/JSONWebToken-OpenSSL.package/monticello.meta/categories.st b/source/JSONWebToken-OpenSSL.package/monticello.meta/categories.st deleted file mode 100644 index b1843cb..0000000 --- a/source/JSONWebToken-OpenSSL.package/monticello.meta/categories.st +++ /dev/null @@ -1 +0,0 @@ -SystemOrganization addCategory: #'JSONWebToken-OpenSSL'! diff --git a/source/JSONWebToken-OpenSSL.package/monticello.meta/initializers.st b/source/JSONWebToken-OpenSSL.package/monticello.meta/initializers.st deleted file mode 100644 index e69de29..0000000 diff --git a/source/JSONWebToken-OpenSSL.package/monticello.meta/package b/source/JSONWebToken-OpenSSL.package/monticello.meta/package deleted file mode 100644 index a72e682..0000000 --- a/source/JSONWebToken-OpenSSL.package/monticello.meta/package +++ /dev/null @@ -1 +0,0 @@ -(name 'JSONWebToken-OpenSSL') \ No newline at end of file diff --git a/source/JSONWebToken-OpenSSL.package/properties.json b/source/JSONWebToken-OpenSSL.package/properties.json deleted file mode 100644 index 6f31cf5..0000000 --- a/source/JSONWebToken-OpenSSL.package/properties.json +++ /dev/null @@ -1 +0,0 @@ -{ } \ No newline at end of file diff --git a/source/JSONWebToken-OpenSSL.package/JWARSASHA256.class/class/checkSignatureOfParts.withKey..st b/source/JSONWebToken-OpenSSL/JWARSASHA256.class.st similarity index 51% rename from source/JSONWebToken-OpenSSL.package/JWARSASHA256.class/class/checkSignatureOfParts.withKey..st rename to source/JSONWebToken-OpenSSL/JWARSASHA256.class.st index 477b0e1..c0773cb 100644 --- a/source/JSONWebToken-OpenSSL.package/JWARSASHA256.class/class/checkSignatureOfParts.withKey..st +++ b/source/JSONWebToken-OpenSSL/JWARSASHA256.class.st @@ -1,5 +1,15 @@ -sign -checkSignatureOfParts: parts withKey: key +" +RSA SHA256 +" +Class { + #name : 'JWARSASHA256', + #superclass : 'JsonWebAlgorithm', + #category : 'JSONWebToken-OpenSSL', + #package : 'JSONWebToken-OpenSSL' +} + +{ #category : 'sign' } +JWARSASHA256 class >> checkSignatureOfParts: parts withKey: key [ | jwtHeaderAndPayload signatureByteArray publicKey | jwtHeaderAndPayload := $. join: @@ -17,4 +27,20 @@ checkSignatureOfParts: parts withKey: key ifFalse: [ Error signal: 'signature does not match' ] ] ensure: [ jwtHeaderAndPayload unpinInMemory. - signatureByteArray unpinInMemory ] \ No newline at end of file + signatureByteArray unpinInMemory ] +] + +{ #category : 'accessing' } +JWARSASHA256 class >> parameterValue [ + ^ 'RS256' +] + +{ #category : 'sign' } +JWARSASHA256 class >> signMessage: message withKey: anObject [ + | pkey sig | + pkey := LcEvpPublicKey setRSA: (LcRSA fromPemString: anObject). + message pinInMemory. + sig := [ pkey digestSignMessage: message ] + ensure: [ message unpinInMemory ]. + ^ sig +] diff --git a/source/JSONWebToken-OpenSSL/package.st b/source/JSONWebToken-OpenSSL/package.st new file mode 100644 index 0000000..566b4c1 --- /dev/null +++ b/source/JSONWebToken-OpenSSL/package.st @@ -0,0 +1 @@ +Package { #name : 'JSONWebToken-OpenSSL' }