profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/Infinisil/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Silvan Mosberger Infinisil Tweag Switzerland Studied Computer Science at ETHZ. Fluent in Nix and Haskell

Infinisil/all-hies 200

Cached Haskell IDE Engine Nix builds for all GHC versions

flox/flox-lib 5

Nix expressions for flox open-source packages

flox/floxpkgs-template 3

Prototype Nix expression collection for use with flox

Infinisil/arvy 2

Bachelor thesis on Arvy Heuristics for Distributed Mutual Exclusion

flox-examples/floxpkgs 0

Example nixexprs repository

delete branch tweag/haskell-fido2

delete branch : faster-ci

delete time in 19 hours

push eventtweag/haskell-fido2

Silvan Mosberger

commit sha 41ee06933b4c2e4567e4d9c867b7406fbcb6f2d3

Only run CI once, on either master or PR's to master Before, CI would run twice for each PR (once for a push and once for a PR)

view details

Silvan Mosberger

commit sha 20dc353cf4dcd3e4e6a570fd34dda49c5c461d09

Make CI use cachix This speeds up builds by reusing builds from past runs

view details

Silvan Mosberger

commit sha 6507bff05327e15cef5f4a610f3cf268528b3c47

Merge pull request #31 from tweag/faster-ci Faster CI

view details

push time in 19 hours

PR merged tweag/haskell-fido2

Faster CI

Run CI only once for each PR and make use of the new https://app.cachix.org/cache/tweag-haskell-fido2 cachix to cache results between runs

+9 -1

0 comment

1 changed file

Infinisil

pr closed time in 19 hours

PR opened tweag/haskell-fido2

Faster CI

Run CI only once for each PR and make use of the new https://app.cachix.org/cache/tweag-haskell-fido2 cachix to cache results between runs

+9 -1

0 comment

1 changed file

pr created time in 19 hours

create barnchtweag/haskell-fido2

branch : faster-ci

created branch time in 19 hours

issue openedtweag/haskell-fido2

Implement FIDO conformance testing interface

In order to be able to test our server implementation against the FIDO conformance test tooling we need to implement the server API as specified in https://github.com/fido-alliance/conformance-test-tools-resources/wiki/FIDO2:-Conformance-testing-server-API#registration

This also ties into #29

created time in 20 hours

PullRequestReviewEvent
PullRequestReviewEvent

Pull request review commenttweag/haskell-fido2

Document all error messages

 verifyAssertionResponse     unless userPresent . Left $ AssertionCommonError UserNotPresent     -- 13. If user verification is required for this assertion, verify that the User     -- Verified bit of the flags in authData is set.-    when (userVerificationRequirement == Fido2.UserVerificationRequired && not userVerified) . Left $ AssertionCommonError UserNotVerified-    -- 15. Let hash be the result of computing a hash over the clientData using SHA-256.+    when (userVerificationRequirement == Fido2.UserVerificationRequired && not userVerified) . Left $ AssertionCommonError UserNotVerified -- 15. Let hash be the result of computing a hash over the clientData using SHA-256.

Probably better to undo this

ErinvanderVeen

comment created time in a day

Pull request review commenttweag/haskell-fido2

Attestation android

+{-# LANGUAGE NamedFieldPuns #-}++-- | Implements step 2-6 of the verification procedure of chapter 8.4+module Crypto.Fido2.Attestation.AndroidKey (verify) where++import Control.Monad (unless, when)+import Crypto.Fido2.Attestation.AndroidKey.Statement (Stmt (Stmt, alg, sig, x5c))+import Crypto.Fido2.Certificate (findProperExtension)+import Crypto.Fido2.Error+  ( AttestationError+      ( ASN1Error,+        AndroidKeyAllApplicationsFieldFound,+        AndroidKeyOriginFieldInvalid,+        AndroidKeyPurposeFieldInvalid,+        AttestationChallengeHashMissing,+        AttestationChallengeMismatch,+        AttestationCommonError,+        AttestationCredentialDataMissing,+        AttestationCredentialKeyMismatch,+        AttestationRecordExtensionMissing,+        CertiticatePublicKeyInvalid,+        StatementInvalidSignature+      ),+    CommonError (DecodingError),+    DecodingError (ASN1DecodingError),+  )+import Crypto.Fido2.Protocol (AttestedCredentialData (credentialPublicKey), AuthenticatorData (AuthenticatorData, attestedCredentialData, rawData))+import qualified Crypto.Fido2.PublicKey as PublicKey+import Crypto.Hash (Digest, SHA256, digestFromByteString)+import Data.ASN1.BinaryEncoding (DER (DER))+import Data.ASN1.Encoding (ASN1Decoding (decodeASN1))+import Data.ASN1.Parse (ParseASN1, getNextContainer, runParseASN1)+import Data.ASN1.Prim (ASN1ConstructionType (Sequence))+import Data.ASN1.Types (ASN1 (OctetString, Other), ASN1Tag)+import Data.Bifunctor (first)+import Data.Binary (Binary, decode)+import Data.ByteArray (convert)+import Data.ByteString.Lazy (fromStrict)+import Data.X509 (Certificate (certPubKey), getCertificate)+import qualified Data.X509 as X509++-- https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/keymaster_defs.h+kmOriginGenerated :: Integer+kmOriginGenerated = 0++-- https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/keymaster_defs.h+kmPurposeSign :: Integer+kmPurposeSign = 2++-- https://www.w3.org/TR/webauthn-2/#sctn-packed-attestation+verify :: Stmt -> AuthenticatorData -> Digest SHA256 -> Either AttestationError AttestedCredentialData+verify Stmt {alg = _alg, sig, x5c} AuthenticatorData {rawData, attestedCredentialData} clientDataHash = do+  -- 1. Verify that attStmt is valid CBOR conforming to the syntax defined above and perform CBOR decoding on it to+  -- extract the contained fields.+  -- NOTE: The validity of the data is already checked during decoding.++  -- 2. Verify that sig is a valid signature over the concatenation of authenticatorData and clientDataHash using the+  -- public key in the first certificate in x5c with the algorithm specified in alg.+  -- TODO: Maybe use verifyX509Sig like in Packed.hs+  let signedData = rawData <> convert clientDataHash+      cert = getCertificate x5c+  x5cKey <- maybe (Left CertiticatePublicKeyInvalid) pure $ PublicKey.toPublicKey $ certPubKey cert+  unless (PublicKey.verify x5cKey signedData sig) $ Left StatementInvalidSignature++  -- 3. Verify that the public key in the first certificate in x5c matches the credentialPublicKey in the+  -- attestedCredentialData in authenticatorData.+  credData <- maybe (Left AttestationCredentialDataMissing) pure attestedCredentialData+  let key = credentialPublicKey credData+  unless (key == x5cKey) $ Left AttestationCredentialKeyMismatch++  -- 4. Verify that the attestationChallenge field in the attestation certificate extension data is identical to+  -- clientDataHash.+  -- See https://source.android.com/security/keystore/attestation for the ASN1 description+  let (X509.Extensions mX509Exts) = X509.certExtensions cert+      mX509Ext = mX509Exts >>= findProperExtension [1, 3, 6, 1, 4, 1, 11129, 2, 1, 17]+  ext <- maybe (Left AttestationRecordExtensionMissing) pure mX509Ext+  asn1 <- either (Left . ASN1Error) pure . decodeASN1 DER $ fromStrict (X509.extRawContent ext)+  attestationChallenge <- decodeAttestationChallenge asn1+  unless (attestationChallenge == clientDataHash) $ Left AttestationChallengeMismatch++  -- 5. Verify the following using the appropriate authorization list from the attestation certificate extension data:++  -- 5.a The AuthorizationList.allApplications field is not present on either+  -- authorization list (softwareEnforced nor teeEnforced), since+  -- PublicKeyCredential MUST be scoped to the RP ID.+  let asnCollections = drop 6 asn1+  (software, tee) <- first (const . AttestationCommonError $ DecodingError ASN1DecodingError) $ runParseASN1 parseSoftwareAndTee asnCollections+  let union = software ++ tee+      contains = containsAllApplicationsField union+  when contains $ Left AndroidKeyAllApplicationsFieldFound++  -- 5.b For the following, use only the teeEnforced authorization list if the+  -- RP wants to accept only keys from a trusted execution environment,+  -- otherwise use the union of teeEnforced and softwareEnforced.+  -- TODO: Allow the users of the library set the required trust level+  -- 5.b.1 The value in the AuthorizationList.origin field is equal to KM_ORIGIN_GENERATED.+  unless (fieldEquals 702 kmOriginGenerated union) $ Left AndroidKeyOriginFieldInvalid++  -- 5.b.2 The value in the AuthorizationList.purpose field is equal to KM_PURPOSE_SIGN.+  unless (fieldEquals 1 kmPurposeSign union) $ Left AndroidKeyPurposeFieldInvalid++  -- 6. If successful, return implementation-specific values representing attestation type Basic and attestation trust+  -- path x5c.+  maybe (Left AttestationCredentialDataMissing) pure attestedCredentialData+  where+    decodeAttestationChallenge :: [ASN1] -> Either AttestationError (Digest SHA256)+    decodeAttestationChallenge asn1 = do+      case asn1 of+        (_ : _ : _ : _ : OctetString ac : _) -> maybe (Left AttestationChallengeHashMissing) pure $ digestFromByteString ac+        _ -> Left AttestationChallengeHashMissing

Similarly here, this feels very arbitrary

ErinvanderVeen

comment created time in a day

Pull request review commenttweag/haskell-fido2

Attestation android

 curveForAlg :: ECDSAIdentifier -> CurveIdentifier curveForAlg ES256 = P256 curveForAlg ES384 = P384 curveForAlg ES512 = P521++algForCurve :: CurveIdentifier -> ECDSAIdentifier+algForCurve P256 = ES256+algForCurve P384 = ES384+algForCurve P521 = ES512++toPublicKey :: PubKey -> Maybe PublicKey+toPublicKey (PubKeyEd25519 key) = Just . EdDSAPublicKey $ Ed25519 key+toPublicKey (PubKeyEC key) = do+  curveName <- ecPubKeyCurveName key+  let ident = algForCurve $ fromCurveName curveName+      curve = getCurveByName curveName+  point <- unserializePoint curve (pubkeyEC_pub key)+  pure . ECDSAPublicKey $ ECDSAKey ident point+toPublicKey _ = Nothing++-- | Verifies that a given FIDO public key and X509 public key reprent the same thing.+sameKeys :: PublicKey -> PubKey -> Bool+sameKeys pk pk' = case toPublicKey pk' of

Doesn't appear to be used anywhere

ErinvanderVeen

comment created time in a day

Pull request review commenttweag/haskell-fido2

Attestation android

+{-# LANGUAGE NamedFieldPuns #-}++-- | Implements step 2-6 of the verification procedure of chapter 8.4+module Crypto.Fido2.Attestation.AndroidKey (verify) where++import Control.Monad (unless, when)+import Crypto.Fido2.Attestation.AndroidKey.Statement (Stmt (Stmt, alg, sig, x5c))+import Crypto.Fido2.Certificate (findProperExtension)+import Crypto.Fido2.Error+  ( AttestationError+      ( ASN1Error,+        AndroidKeyAllApplicationsFieldFound,+        AndroidKeyOriginFieldInvalid,+        AndroidKeyPurposeFieldInvalid,+        AttestationChallengeHashMissing,+        AttestationChallengeMismatch,+        AttestationCommonError,+        AttestationCredentialDataMissing,+        AttestationCredentialKeyMismatch,+        AttestationRecordExtensionMissing,+        CertiticatePublicKeyInvalid,+        StatementInvalidSignature+      ),+    CommonError (DecodingError),+    DecodingError (ASN1DecodingError),+  )+import Crypto.Fido2.Protocol (AttestedCredentialData (credentialPublicKey), AuthenticatorData (AuthenticatorData, attestedCredentialData, rawData))+import qualified Crypto.Fido2.PublicKey as PublicKey+import Crypto.Hash (Digest, SHA256, digestFromByteString)+import Data.ASN1.BinaryEncoding (DER (DER))+import Data.ASN1.Encoding (ASN1Decoding (decodeASN1))+import Data.ASN1.Parse (ParseASN1, getNextContainer, runParseASN1)+import Data.ASN1.Prim (ASN1ConstructionType (Sequence))+import Data.ASN1.Types (ASN1 (OctetString, Other), ASN1Tag)+import Data.Bifunctor (first)+import Data.Binary (Binary, decode)+import Data.ByteArray (convert)+import Data.ByteString.Lazy (fromStrict)+import Data.X509 (Certificate (certPubKey), getCertificate)+import qualified Data.X509 as X509++-- https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/keymaster_defs.h+kmOriginGenerated :: Integer+kmOriginGenerated = 0++-- https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/keymaster_defs.h+kmPurposeSign :: Integer+kmPurposeSign = 2++-- https://www.w3.org/TR/webauthn-2/#sctn-packed-attestation

Wrong link

ErinvanderVeen

comment created time in a day

Pull request review commenttweag/haskell-fido2

Attestation android

+{-# LANGUAGE NamedFieldPuns #-}++-- | Implements step 2-6 of the verification procedure of chapter 8.4+module Crypto.Fido2.Attestation.AndroidKey (verify) where++import Control.Monad (unless, when)+import Crypto.Fido2.Attestation.AndroidKey.Statement (Stmt (Stmt, alg, sig, x5c))+import Crypto.Fido2.Certificate (findProperExtension)+import Crypto.Fido2.Error+  ( AttestationError+      ( ASN1Error,+        AndroidKeyAllApplicationsFieldFound,+        AndroidKeyOriginFieldInvalid,+        AndroidKeyPurposeFieldInvalid,+        AttestationChallengeHashMissing,+        AttestationChallengeMismatch,+        AttestationCommonError,+        AttestationCredentialDataMissing,+        AttestationCredentialKeyMismatch,+        AttestationRecordExtensionMissing,+        CertiticatePublicKeyInvalid,+        StatementInvalidSignature+      ),+    CommonError (DecodingError),+    DecodingError (ASN1DecodingError),+  )+import Crypto.Fido2.Protocol (AttestedCredentialData (credentialPublicKey), AuthenticatorData (AuthenticatorData, attestedCredentialData, rawData))+import qualified Crypto.Fido2.PublicKey as PublicKey+import Crypto.Hash (Digest, SHA256, digestFromByteString)+import Data.ASN1.BinaryEncoding (DER (DER))+import Data.ASN1.Encoding (ASN1Decoding (decodeASN1))+import Data.ASN1.Parse (ParseASN1, getNextContainer, runParseASN1)+import Data.ASN1.Prim (ASN1ConstructionType (Sequence))+import Data.ASN1.Types (ASN1 (OctetString, Other), ASN1Tag)+import Data.Bifunctor (first)+import Data.Binary (Binary, decode)+import Data.ByteArray (convert)+import Data.ByteString.Lazy (fromStrict)+import Data.X509 (Certificate (certPubKey), getCertificate)+import qualified Data.X509 as X509++-- https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/keymaster_defs.h+kmOriginGenerated :: Integer+kmOriginGenerated = 0++-- https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/keymaster_defs.h+kmPurposeSign :: Integer+kmPurposeSign = 2++-- https://www.w3.org/TR/webauthn-2/#sctn-packed-attestation+verify :: Stmt -> AuthenticatorData -> Digest SHA256 -> Either AttestationError AttestedCredentialData+verify Stmt {alg = _alg, sig, x5c} AuthenticatorData {rawData, attestedCredentialData} clientDataHash = do+  -- 1. Verify that attStmt is valid CBOR conforming to the syntax defined above and perform CBOR decoding on it to+  -- extract the contained fields.+  -- NOTE: The validity of the data is already checked during decoding.++  -- 2. Verify that sig is a valid signature over the concatenation of authenticatorData and clientDataHash using the+  -- public key in the first certificate in x5c with the algorithm specified in alg.+  -- TODO: Maybe use verifyX509Sig like in Packed.hs+  let signedData = rawData <> convert clientDataHash+      cert = getCertificate x5c+  x5cKey <- maybe (Left CertiticatePublicKeyInvalid) pure $ PublicKey.toPublicKey $ certPubKey cert+  unless (PublicKey.verify x5cKey signedData sig) $ Left StatementInvalidSignature++  -- 3. Verify that the public key in the first certificate in x5c matches the credentialPublicKey in the+  -- attestedCredentialData in authenticatorData.+  credData <- maybe (Left AttestationCredentialDataMissing) pure attestedCredentialData+  let key = credentialPublicKey credData+  unless (key == x5cKey) $ Left AttestationCredentialKeyMismatch++  -- 4. Verify that the attestationChallenge field in the attestation certificate extension data is identical to+  -- clientDataHash.+  -- See https://source.android.com/security/keystore/attestation for the ASN1 description+  let (X509.Extensions mX509Exts) = X509.certExtensions cert+      mX509Ext = mX509Exts >>= findProperExtension [1, 3, 6, 1, 4, 1, 11129, 2, 1, 17]+  ext <- maybe (Left AttestationRecordExtensionMissing) pure mX509Ext+  asn1 <- either (Left . ASN1Error) pure . decodeASN1 DER $ fromStrict (X509.extRawContent ext)+  attestationChallenge <- decodeAttestationChallenge asn1+  unless (attestationChallenge == clientDataHash) $ Left AttestationChallengeMismatch++  -- 5. Verify the following using the appropriate authorization list from the attestation certificate extension data:++  -- 5.a The AuthorizationList.allApplications field is not present on either+  -- authorization list (softwareEnforced nor teeEnforced), since+  -- PublicKeyCredential MUST be scoped to the RP ID.+  let asnCollections = drop 6 asn1

Seemingly arbitrary constants aren't very nice. Same for the 702, 1 and 600 later down. Instead of this we should write a separate parser for the ASN.1 structure, potentially only storing the fields we're interested in, and then access those fields here.

ErinvanderVeen

comment created time in a day

PullRequestReviewEvent
PullRequestReviewEvent

issue openedtweag/haskell-fido2

Make library agnostic to the JavaScript encoding used

Currently we're relying on the JavaScript library webauthn-json's encoding of JavaScript objects returned by navigator.credentials.create() and navigator.credentials.get(). This happens via the FromJSON instances here: https://github.com/tweag/haskell-fido2/blob/247ffd99b9262f98b48891523f94b19e7c1e9f22/fido/Crypto/Fido2/Protocol.hs#L339-L369

Instead we should have functions like fromWebauthnJson :: Value -> Parser (PublicKeyCredential response) that handle this. This then acts as a clear separation of concern between the JavaScript encoding and the Haskell value.

created time in a day

push eventNixOS/nixpkgs

Silvan Mosberger

commit sha 82590fed5fe04aa2503e36e81c84b1e3455780e5

glibcLocales: Fix build for duplicates in locales list Without this patch, setting the same locale twice, e.g. like this in NixOS: ```nix { i18n.supportedLocales = [ (config.i18n.defaultLocale + "/UTF-8") (config.i18n.defaultLocale + "/UTF-8") ]; } ``` Would make the glibcLocales build fail with ``` Error: unsupported locales detected: en_US.UTF-8/UTF-8 \ You should choose from the list above the error. ```

view details

Silvan Mosberger

commit sha 1413535d8271f64b2713e44409bc9ca27f76d94d

Merge pull request #138955 from Infinisil/glibc-locales-duplicates glibcLocales: Fix build for duplicates in locales list

view details

push time in a day

delete branch Infinisil/nixpkgs

delete branch : glibc-locales-duplicates

delete time in a day

PR merged NixOS/nixpkgs

glibcLocales: Fix build for duplicates in locales list 10.rebuild-darwin: 0 10.rebuild-linux: 0
Motivation for this change

Without this patch, setting the same locale twice, e.g. like this in NixOS:

{
  i18n.supportedLocales = [
    (config.i18n.defaultLocale + "/UTF-8")
    (config.i18n.defaultLocale + "/UTF-8")
  ];
}

Would make the glibcLocales build fail with

Error: unsupported locales detected:
en_US.UTF-8/UTF-8 \
You should choose from the list above the error.

Ping @Mic92 @Ericson2314 @vcunat

Things done

<!-- Please check what applies. Note that these are not hard requirements but merely serve as information for reviewers. -->

  • Built on platform(s)
    • [ ] x86_64-linux
    • [ ] aarch64-linux
    • [ ] x86_64-darwin
    • [ ] aarch64-darwin
  • [ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
  • [ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • [ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • [ ] Tested execution of all binary files (usually in ./result/bin/)
  • 21.11 Release Notes (or backporting 21.05 Release notes)
    • [ ] (Package updates) Added a release notes entry if the change is major or breaking
    • [ ] (Module updates) Added a release notes entry if the change is significant
    • [ ] (Module addition) Added a release notes entry if adding a new NixOS module
  • [ ] Fits CONTRIBUTING.md.
+2 -2

3 comments

1 changed file

Infinisil

pr closed time in a day

pull request commentNixOS/nixpkgs

glibcLocales: Fix build for duplicates in locales list

@SuperSandro2000 I think this solution is a bit better since it fixes the problem directly where the uniqueness of the list is required (for the comm command). And if we only fixed it on the NixOS module level, you could still get the error if you are using pkgs.glibcLocales directly.

For the future I think we should definitely have a types.set or similar for NixOS modules, because there's many such situations where it's really a set that we want, not a list.

Infinisil

comment created time in a day

push eventInfinisil/nixpkgs

Silvan Mosberger

commit sha 82590fed5fe04aa2503e36e81c84b1e3455780e5

glibcLocales: Fix build for duplicates in locales list Without this patch, setting the same locale twice, e.g. like this in NixOS: ```nix { i18n.supportedLocales = [ (config.i18n.defaultLocale + "/UTF-8") (config.i18n.defaultLocale + "/UTF-8") ]; } ``` Would make the glibcLocales build fail with ``` Error: unsupported locales detected: en_US.UTF-8/UTF-8 \ You should choose from the list above the error. ```

view details

push time in 2 days

create barnchInfinisil/nixpkgs

branch : glibc-locales-duplicates

created branch time in 2 days

PR opened NixOS/nixpkgs

glibcLocales: Fix build for duplicates in locales list
Motivation for this change

Without this patch, setting the same locale twice, e.g. like this in NixOS:

{
  i18n.supportedLocales = [
    (config.i18n.defaultLocale + "/UTF-8")
    (config.i18n.defaultLocale + "/UTF-8")
  ];
}

Would make the glibcLocales build fail with

Error: unsupported locales detected:
en_US.UTF-8/UTF-8 \
You should choose from the list above the error.

Ping @Mic92 @Ericson2314 @vcunat

Things done

<!-- Please check what applies. Note that these are not hard requirements but merely serve as information for reviewers. -->

  • Built on platform(s)
    • [ ] x86_64-linux
    • [ ] aarch64-linux
    • [ ] x86_64-darwin
    • [ ] aarch64-darwin
  • [ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
  • [ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • [ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • [ ] Tested execution of all binary files (usually in ./result/bin/)
  • 21.11 Release Notes (or backporting 21.05 Release notes)
    • [ ] (Package updates) Added a release notes entry if the change is major or breaking
    • [ ] (Module updates) Added a release notes entry if the change is significant
    • [ ] (Module addition) Added a release notes entry if adding a new NixOS module
  • [ ] Fits CONTRIBUTING.md.
+1 -1

0 comment

1 changed file

pr created time in 2 days

delete branch tweag/haskell-fido2

delete branch : metadata

delete time in 2 days

delete branch tweag/haskell-fido2

delete branch : error

delete time in 2 days

push eventtweag/haskell-fido2

Erin van der Veen

commit sha 5f30d81f4fc68b0046833825e3d083f1fb632685

Reorganize Errors - Move all errors to a shared Errors module - Splits up Errors into parts to accurately describe the possible errors - Introduces a consistent naming scheme for all errors

view details

Erin van der Veen

commit sha 4e0ce2c9f82451004463290772d3cb4711a1f78e

Move assertion errors to Fido2.Error Assertion and Attestation share many common errors, hence they are incorporated in the general "Error" type.

view details

Erin van der Veen

commit sha babc857aa715c1459ee01f43405318cca23af90f

Differentiate between Attestation-/AssertionErrors This is achieved by creating a common set of errors defined as the CommonErrors.

view details

Silvan Mosberger

commit sha a72173e0be276794102e288b80e8b2b7e5b5358f

Merge pull request #25 from tweag/error Reorganize Errors

view details

push time in 2 days

PR merged tweag/haskell-fido2

Reorganize Errors
  • Move all errors to a shared Errors module
  • Splits up Errors into parts to accurately describe the possible errors
  • Introduces a consistent naming scheme for all errors
+162 -116

1 comment

13 changed files

ErinvanderVeen

pr closed time in 2 days

PullRequestReviewEvent

push eventtweag/haskell-fido2

Silvan Mosberger

commit sha 3b61f7925c5563c7e0de8182259d42e7b956729e

Constraint jose to >= 0.8.5, update haskell.nix Fixes a performance issue with previous versions, see https://github.com/frasertweedale/hs-jose/pull/103

view details

push time in 2 days

pull request commentfrasertweedale/hs-jose

Prevent expensive bytestring conversions

Awesome, thanks! Do you still want to go for this PR for 0.9?

Infinisil

comment created time in 3 days