{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":10758938,"defaultBranch":"master","name":"hs-jose","ownerLogin":"frasertweedale","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2013-06-18T09:14:57.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/2331938?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1711678552.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"230f4329fee72428320784c5803832b68064402a","ref":"refs/heads/fix/125-protection-ergonomics","pushedAt":"2024-03-29T02:15:52.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"frasertweedale","name":"Fraser Tweedale","path":"/frasertweedale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2331938?s=80&v=4"},"commit":{"message":"improve header protection ergonomics (breaking change)\n\nChanged the header protection data types for better ergonomics\n([#125](https://github.com/frasertweedale/hs-jose/issues/125)).\nPreviously, `()` was used for serialisations that only support\nprotected headers (thus, a single constructor). This release\nintroduces the new single-constructor data type `ProtectedOnly` to\nreplace the use of `()` for this purpose. This is a breaking\nchange and some library users will need to update their code.\n\nThe `Protection` type has been renamed to `ProtectionOptional`,\nwith the old name retained as a (deprecated) type synonym.\n\nThe `ProtectionIndicator` class has been renamed to\n`ProtectionOptionality`, with the old name retained as a\n(deprecated) type synonym.\n\nAdded some convenience header and header parameter constructors:\n`newJWSHeaderProtected`, `newHeaderParamProtected` and\n`newHeaderParamUnprotected`.\n\nFixes: https://github.com/frasertweedale/hs-jose/issues/125","shortMessageHtmlLink":"improve header protection ergonomics (breaking change)"}},{"before":"b7c0a38d383932fee9600eec5c2ad38f234130be","after":"c2f6690df5672dc1e089d1fa9ab7a4298f06c55d","ref":"refs/heads/master","pushedAt":"2024-03-29T01:00:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"frasertweedale","name":"Fraser Tweedale","path":"/frasertweedale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2331938?s=80&v=4"},"commit":{"message":"example: fix breakage due to previous commit","shortMessageHtmlLink":"example: fix breakage due to previous commit"}},{"before":"5d49f985bff640ec4b633fb2b18cef8207c27af4","after":null,"ref":"refs/heads/fix/122-jwt-generalised-header","pushedAt":"2024-02-15T09:00:54.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"frasertweedale","name":"Fraser Tweedale","path":"/frasertweedale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2331938?s=80&v=4"}},{"before":"853edcbadf008bc6645d329b907f9c357e8bb8f9","after":"b7c0a38d383932fee9600eec5c2ad38f234130be","ref":"refs/heads/master","pushedAt":"2024-02-15T09:00:49.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"frasertweedale","name":"Fraser Tweedale","path":"/frasertweedale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2331938?s=80&v=4"},"commit":{"message":"jwt: support custom header types\n\nGeneralise the types of `signJWT`, `verifyJWT`, and related\nfunctions to accept custom JWS header types. Add new type synonym\n`SignedJWTWithHeader h` (keeping `SignedJWT` *as is*). This change\ncould break some applications by introducing type ambiguity.\nPossible solutions include…\n\nType application:\n\n```haskell\n{-# LANGUAGE TypeApplications #-}\ndecodeCompact @SignedJWT s >>= verifyClaims settings k\n```\n\nType annotation:\n\n```haskell\ndo\n jwt <- decodeCompact s\n verifyClaims settings k (jwt :: SignedJWT)\n```\n\nExplicitly typed coercion function:\n\n```haskell\nlet\n fixType = id :: SignedJWT -> SignedJWT\nin\n verifyClaims settings k . fixType =<< decodeCompact s\n```\n\nI used type applications in the test suite to address the ambiguity.\n\nFixes: https://github.com/frasertweedale/hs-jose/issues/122","shortMessageHtmlLink":"jwt: support custom header types"}},{"before":"1534de5002ea9dac23920737797b69033ba0cc6e","after":"5d49f985bff640ec4b633fb2b18cef8207c27af4","ref":"refs/heads/fix/122-jwt-generalised-header","pushedAt":"2024-02-15T08:43:27.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"frasertweedale","name":"Fraser Tweedale","path":"/frasertweedale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2331938?s=80&v=4"},"commit":{"message":"jwt: support custom header types\n\nGeneralise the types of `signJWT`, `verifyJWT`, and related\nfunctions to accept custom JWS header types. Add new type synonym\n`SignedJWTWithHeader h` (keeping `SignedJWT` *as is*). This change\ncould break some applications by introducing type ambiguity.\nPossible solutions include…\n\nType application:\n\n```haskell\n{-# LANGUAGE TypeApplications #-}\ndecodeCompact @SignedJWT s >>= verifyClaims settings k\n```\n\nType annotation:\n\n```haskell\ndo\n jwt <- decodeCompact s\n verifyClaims settings k (jwt :: SignedJWT)\n```\n\nExplicitly typed coercion function:\n\n```haskell\nlet\n fixType = id :: SignedJWT -> SignedJWT\nin\n verifyClaims settings k . fixType =<< decodeCompact s\n```\n\nI used type applications in the test suite to address the ambiguity.\n\nFixes: https://github.com/frasertweedale/hs-jose/issues/122","shortMessageHtmlLink":"jwt: support custom header types"}},{"before":"48ed92daa3d15e5ac5b5e395ba4ead94456ac773","after":"1534de5002ea9dac23920737797b69033ba0cc6e","ref":"refs/heads/fix/122-jwt-generalised-header","pushedAt":"2024-02-15T07:58:52.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"frasertweedale","name":"Fraser Tweedale","path":"/frasertweedale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2331938?s=80&v=4"},"commit":{"message":"jwt: support custom header types\n\nGeneralise the types of `signJWT`, `verifyJWT`, and related\nfunctions to accept custom JWS header types. Add new type synonym\n`SignedJWTWithHeader h` (keeping `SignedJWT` *as is*). This change\ncould break some applications by introducing type ambiguity. The\nsolution is to add a type annotation or apply a function like:\n\n```haskell\nfixType = id :: SignedJWT -> SignedJWT\n```\n\nI applied this technique in the test suite to address such\nambiguity.\n\nFixes: https://github.com/frasertweedale/hs-jose/issues/122","shortMessageHtmlLink":"jwt: support custom header types"}},{"before":"1477082fb80af39cf42e00d056da5266bbc2b0e6","after":"48ed92daa3d15e5ac5b5e395ba4ead94456ac773","ref":"refs/heads/fix/122-jwt-generalised-header","pushedAt":"2024-02-15T05:36:43.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"frasertweedale","name":"Fraser Tweedale","path":"/frasertweedale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2331938?s=80&v=4"},"commit":{"message":"jwt: support custom header types\n\nGeneralise the types of `signJWT`, `verifyJWT`, and related\nfunctions to accept custom JWS header types. Add new type synonym\n`SignedJWTWithHeader h` (keeping `SignedJWT` *as is*). This change\ncould break some applications by introducing type ambiguity. The\nsolution is to add a type annotation or apply a function like:\n\n```haskell\nfixType = id :: SignedJWT -> SignedJWT\n```\n\nI applied this technique in the test suite to address such\nambiguity.\n\nFixes: https://github.com/frasertweedale/hs-jose/issues/122","shortMessageHtmlLink":"jwt: support custom header types"}},{"before":"9980244b4a54f6ef19b7ea9254550b2e518e2a25","after":null,"ref":"refs/heads/feature/126-get-unverified-payload","pushedAt":"2024-02-14T07:13:47.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"frasertweedale","name":"Fraser Tweedale","path":"/frasertweedale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2331938?s=80&v=4"}},{"before":"e81b0e990ee1854330b3d41e033dbbc65701d17c","after":"853edcbadf008bc6645d329b907f9c357e8bb8f9","ref":"refs/heads/master","pushedAt":"2024-02-14T07:02:43.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"frasertweedale","name":"Fraser Tweedale","path":"/frasertweedale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2331938?s=80&v=4"},"commit":{"message":"add functions to access unverified payload\n\nFixes: https://github.com/frasertweedale/hs-jose/issues/126","shortMessageHtmlLink":"add functions to access unverified payload"}},{"before":"f6371a81b2a4c46d92cff6c1bc0a599b2e2710d8","after":"9980244b4a54f6ef19b7ea9254550b2e518e2a25","ref":"refs/heads/feature/126-get-unverified-payload","pushedAt":"2024-02-14T06:14:50.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"frasertweedale","name":"Fraser Tweedale","path":"/frasertweedale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2331938?s=80&v=4"},"commit":{"message":"add functions to access unverified payload\n\nFixes: https://github.com/frasertweedale/hs-jose/issues/126","shortMessageHtmlLink":"add functions to access unverified payload"}},{"before":null,"after":"f6371a81b2a4c46d92cff6c1bc0a599b2e2710d8","ref":"refs/heads/feature/126-get-unverified-payload","pushedAt":"2024-02-07T05:24:55.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"frasertweedale","name":"Fraser Tweedale","path":"/frasertweedale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2331938?s=80&v=4"},"commit":{"message":"add functions to access unverified payload\n\nFixes: https://github.com/frasertweedale/hs-jose/issues/126","shortMessageHtmlLink":"add functions to access unverified payload"}},{"before":"f9932438426adcc611715bf5a1c1c629b8c646be","after":"1477082fb80af39cf42e00d056da5266bbc2b0e6","ref":"refs/heads/fix/122-jwt-generalised-header","pushedAt":"2023-12-16T01:55:02.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"frasertweedale","name":"Fraser Tweedale","path":"/frasertweedale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2331938?s=80&v=4"},"commit":{"message":"jwt: support custom header types\n\nGeneralise the types of `signJWT`, `verifyJWT`, and related\nfunctions to accept custom JWS header types. Add new type synonym\n`SignedJWTWithHeader h` (keeping `SignedJWT` *as is*). This change\ncould break some applications by introducing type ambiguity. The\nsolution is to add a type annotation or apply a function like:\n\n```haskell\nfixType = id :: SignedJWT -> SignedJWT\n```\n\nI applied this technique in the test suite to address such\nambiguity.\n\nFixes: https://github.com/frasertweedale/hs-jose/issues/122","shortMessageHtmlLink":"jwt: support custom header types"}},{"before":"8bfb1f48aaaa2c6e4dafbf5cec123d796cd83b29","after":"f9932438426adcc611715bf5a1c1c629b8c646be","ref":"refs/heads/fix/122-jwt-generalised-header","pushedAt":"2023-12-16T01:44:11.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"frasertweedale","name":"Fraser Tweedale","path":"/frasertweedale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2331938?s=80&v=4"},"commit":{"message":"jwt: support custom header types\n\nGeneralise the types of `signJWT`, `verifyJWT`, and related\nfunctions to accept custom JWS header types. Add new type synonym\n`SignedJWTWithHeader h` (keeping `SignedJWT` *as is*). This change\ncould break some applications by introducing type ambiguity. The\nsolution is to add a type annotation or apply a function like:\n\n```haskell\nfixType = id :: SignedJWT -> SignedJWT\n```\n\nI applied this technique in the test suite to address such\nambiguity.\n\nFixes: https://github.com/frasertweedale/hs-jose/issues/122","shortMessageHtmlLink":"jwt: support custom header types"}},{"before":null,"after":"8bfb1f48aaaa2c6e4dafbf5cec123d796cd83b29","ref":"refs/heads/fix/122-jwt-generalised-header","pushedAt":"2023-12-16T01:34:01.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"frasertweedale","name":"Fraser Tweedale","path":"/frasertweedale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2331938?s=80&v=4"},"commit":{"message":"jwt: support custom header types\n\nGeneralise the types of `signJWT`, `verifyJWT`, and related\nfunctions to accept custom JWS header types. Add new type synonym\n`SignedJWTWithHeader h` (keeping `SignedJWT` *as is*). This change\ncould break some applications by introducing type ambiguity. The\nsolution is to add a type annotation or apply a function like:\n\n```haskell\nfixType = id :: SignedJWT -> SignedJWT\n```\n\nI applied this technique in the test suite to address such\nambiguity.\n\nFixes: https://github.com/frasertweedale/hs-jose/issues/122","shortMessageHtmlLink":"jwt: support custom header types"}},{"before":"2e3c6416a15f364c7f55d215d0d335a8e764eb22","after":"e81b0e990ee1854330b3d41e033dbbc65701d17c","ref":"refs/heads/master","pushedAt":"2023-12-15T02:16:51.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"frasertweedale","name":"Fraser Tweedale","path":"/frasertweedale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2331938?s=80&v=4"},"commit":{"message":"add Crypto.JOSE.JWK.negotiateJWSAlg\n\nAdd `Crypto.JOSE.JWK.negotiateJWSAlg` which chooses the\ncryptographically strongest JWS algorithm for a given key,\nrestricted to a given set of algorithms.\n\nFixes: https://github.com/frasertweedale/hs-jose/issues/118","shortMessageHtmlLink":"add Crypto.JOSE.JWK.negotiateJWSAlg"}},{"before":"b07899f3a11f777dfcb3706fe71545a45175d179","after":null,"ref":"refs/heads/feature/121-key-conversion","pushedAt":"2023-12-15T02:15:42.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"frasertweedale","name":"Fraser Tweedale","path":"/frasertweedale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2331938?s=80&v=4"}},{"before":"2e3c6416a15f364c7f55d215d0d335a8e764eb22","after":null,"ref":"refs/heads/feature/118-negotiate-alg","pushedAt":"2023-12-15T02:15:42.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"frasertweedale","name":"Fraser Tweedale","path":"/frasertweedale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2331938?s=80&v=4"}},{"before":"1545c0a7c73cfaddfb9865d751386f4077559300","after":"2e3c6416a15f364c7f55d215d0d335a8e764eb22","ref":"refs/heads/master","pushedAt":"2023-12-15T02:15:14.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"frasertweedale","name":"Fraser Tweedale","path":"/frasertweedale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2331938?s=80&v=4"},"commit":{"message":"add Crypto.JOSE.JWK.negotiateJWSAlg\n\nAdd `Crypto.JOSE.JWK.negotiateJWSAlg` which chooses the\ncryptographically strongest JWS algorithm for a given key,\nrestricted to a given set of algorithms.\n\nhttps://github.com/frasertweedale/hs-jose/issues/118","shortMessageHtmlLink":"add Crypto.JOSE.JWK.negotiateJWSAlg"}},{"before":"8711bc38c9307e7b94abd40493822f22981d6868","after":"2e3c6416a15f364c7f55d215d0d335a8e764eb22","ref":"refs/heads/feature/118-negotiate-alg","pushedAt":"2023-12-15T02:08:55.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"frasertweedale","name":"Fraser Tweedale","path":"/frasertweedale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2331938?s=80&v=4"},"commit":{"message":"add Crypto.JOSE.JWK.negotiateJWSAlg\n\nAdd `Crypto.JOSE.JWK.negotiateJWSAlg` which chooses the\ncryptographically strongest JWS algorithm for a given key,\nrestricted to a given set of algorithms.\n\nhttps://github.com/frasertweedale/hs-jose/issues/118","shortMessageHtmlLink":"add Crypto.JOSE.JWK.negotiateJWSAlg"}},{"before":"3ee01ada9d1ea6c000129cc56e215297a6f04849","after":"b07899f3a11f777dfcb3706fe71545a45175d179","ref":"refs/heads/feature/121-key-conversion","pushedAt":"2023-12-15T02:07:44.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"frasertweedale","name":"Fraser Tweedale","path":"/frasertweedale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2331938?s=80&v=4"},"commit":{"message":"export Crypto.JOSE.JWK.fromRSAPublic\n\nFixes: https://github.com/frasertweedale/hs-jose/issues/112","shortMessageHtmlLink":"export Crypto.JOSE.JWK.fromRSAPublic"}},{"before":"6a03a2577189783e9624f0667d0c4a8216237972","after":"8711bc38c9307e7b94abd40493822f22981d6868","ref":"refs/heads/feature/118-negotiate-alg","pushedAt":"2023-12-15T01:58:54.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"frasertweedale","name":"Fraser Tweedale","path":"/frasertweedale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2331938?s=80&v=4"},"commit":{"message":"add Crypto.JOSE.JWK.negotiateJWSAlg\n\nAdd `Crypto.JOSE.JWK.negotiateJWSAlg` which chooses the\ncryptographically strongest JWS algorithm for a given key,\nrestricted to a given set of algorithms.\n\nhttps://github.com/frasertweedale/hs-jose/issues/118","shortMessageHtmlLink":"add Crypto.JOSE.JWK.negotiateJWSAlg"}},{"before":"7c118e8f27a125c50a1dfc7d7a3e5445a03c54a9","after":"6a03a2577189783e9624f0667d0c4a8216237972","ref":"refs/heads/feature/118-negotiate-alg","pushedAt":"2023-12-14T02:47:11.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"frasertweedale","name":"Fraser Tweedale","path":"/frasertweedale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2331938?s=80&v=4"},"commit":{"message":"add Crypto.JOSE.JWK.negotiateJWSAlg\n\nAdd `Crypto.JOSE.JWK.negotiateJWSAlg` which chooses the\ncryptographically strongest JWS algorithm for a given key,\noptionally restricted to a given set of algorithms.\n\nhttps://github.com/frasertweedale/hs-jose/issues/118","shortMessageHtmlLink":"add Crypto.JOSE.JWK.negotiateJWSAlg"}},{"before":"4558cb961af09d529b96c19714431ac06cf851c2","after":"1545c0a7c73cfaddfb9865d751386f4077559300","ref":"refs/heads/master","pushedAt":"2023-12-14T02:40:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"frasertweedale","name":"Fraser Tweedale","path":"/frasertweedale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2331938?s=80&v=4"},"commit":{"message":".gitignore: ignore cabal.project.local","shortMessageHtmlLink":".gitignore: ignore cabal.project.local"}},{"before":null,"after":"7c118e8f27a125c50a1dfc7d7a3e5445a03c54a9","ref":"refs/heads/feature/118-negotiate-alg","pushedAt":"2023-12-14T02:19:13.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"frasertweedale","name":"Fraser Tweedale","path":"/frasertweedale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2331938?s=80&v=4"},"commit":{"message":"add Crypto.JOSE.JWK.negotiateJWSAlg\n\nAdd `Crypto.JOSE.JWK.negotiateJWSAlg` which chooses the\ncryptographically strongest JWS algorithm for a given key,\noptionally restricted to a given set of algorithms.\n\nhttps://github.com/frasertweedale/hs-jose/issues/118","shortMessageHtmlLink":"add Crypto.JOSE.JWK.negotiateJWSAlg"}},{"before":"20d33e123b69d8c2f51c98e15752b49d781a1237","after":"3ee01ada9d1ea6c000129cc56e215297a6f04849","ref":"refs/heads/feature/121-key-conversion","pushedAt":"2023-12-14T01:00:29.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"frasertweedale","name":"Fraser Tweedale","path":"/frasertweedale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2331938?s=80&v=4"},"commit":{"message":"export Crypto.JOSE.JWK.fromRSAPublic\n\nFixes: https://github.com/frasertweedale/hs-jose/issues/112","shortMessageHtmlLink":"export Crypto.JOSE.JWK.fromRSAPublic"}},{"before":"02f965c8f85d9bf6578ebb686658e138140f0105","after":"20d33e123b69d8c2f51c98e15752b49d781a1237","ref":"refs/heads/feature/121-key-conversion","pushedAt":"2023-12-14T00:52:57.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"frasertweedale","name":"Fraser Tweedale","path":"/frasertweedale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2331938?s=80&v=4"},"commit":{"message":"export Crypto.JOSE.JWK.fromRSAPublic\n\nFixes: https://github.com/frasertweedale/hs-jose/issues/112","shortMessageHtmlLink":"export Crypto.JOSE.JWK.fromRSAPublic"}},{"before":"c2dd709f7d54883dcdd7456bf6eb2db27594d8b5","after":"02f965c8f85d9bf6578ebb686658e138140f0105","ref":"refs/heads/feature/121-key-conversion","pushedAt":"2023-12-14T00:52:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"frasertweedale","name":"Fraser Tweedale","path":"/frasertweedale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2331938?s=80&v=4"},"commit":{"message":"export Crypto.JOSE.JWK.fromRSAPublic\n\nFixes: https://github.com/frasertweedale/hs-jose/issues/112","shortMessageHtmlLink":"export Crypto.JOSE.JWK.fromRSAPublic"}},{"before":"afebd48b3e1a735c5635bc8fe085ef8c69f5de05","after":"c2dd709f7d54883dcdd7456bf6eb2db27594d8b5","ref":"refs/heads/feature/121-key-conversion","pushedAt":"2023-12-14T00:49:22.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"frasertweedale","name":"Fraser Tweedale","path":"/frasertweedale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2331938?s=80&v=4"},"commit":{"message":"add conversion from Data.X509.PrivKey\n\nAdd the `fromX509PrivKey` function, which supports conversion from\n`Data.X509.PrivKey`, such as can be read via the *crypton-x509-store*\npackage.\n\n fromX509PrivKey\n :: (AsError e, MonadError e m)\n => X509.PrivKey -> m JWK\n\nFixes: https://github.com/frasertweedale/hs-jose/issues/121","shortMessageHtmlLink":"add conversion from Data.X509.PrivKey"}},{"before":null,"after":"afebd48b3e1a735c5635bc8fe085ef8c69f5de05","ref":"refs/heads/feature/121-key-conversion","pushedAt":"2023-12-14T00:44:10.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"frasertweedale","name":"Fraser Tweedale","path":"/frasertweedale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2331938?s=80&v=4"},"commit":{"message":"fromX509PubKey: support Edwards EdDSA and ECDSA keys","shortMessageHtmlLink":"fromX509PubKey: support Edwards EdDSA and ECDSA keys"}},{"before":"b76ce385d6c5a97cd4620a9e8a816b7b06ec081c","after":null,"ref":"refs/heads/deps/crypton","pushedAt":"2023-10-31T07:05:01.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"frasertweedale","name":"Fraser Tweedale","path":"/frasertweedale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2331938?s=80&v=4"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEIlIIVwA","startCursor":null,"endCursor":null}},"title":"Activity · frasertweedale/hs-jose"}