1 -- This file is part of Diohsc
2 -- Copyright (C) 2020 Martin Bays <mbays@sdf.org>
4 -- This program is free software: you can redistribute it and/or modify
5 -- it under the terms of version 3 of the GNU General Public License as
6 -- published by the Free Software Foundation, or any later version.
8 -- You should have received a copy of the GNU General Public License
9 -- along with this program. If not, see http://www.gnu.org/licenses/.
11 -- | Stupid module to avoid orphan instances, redefining Fingerprint from
12 -- x509-validation to have an Ord instance.
13 module Fingerprint
(Fingerprint
(..), fingerprint
) where
15 import Data
.ASN1
.Types
(ASN1Object
)
17 import qualified Data
.ByteString
as BS
18 import qualified Data
.X509
as X
19 import qualified Data
.X509
.Validation
as X
21 newtype Fingerprint
= Fingerprint BS
.ByteString
22 deriving (Eq
,Ord
,Show)
24 getFingerprint
:: (Show a
, Eq a
, ASN1Object a
) => X
.SignedExact a
-> X
.HashALG
-> Fingerprint
25 getFingerprint s a
= let X
.Fingerprint fp
= X
.getFingerprint s a
in Fingerprint fp
27 fingerprint
:: X
.SignedCertificate
-> Fingerprint
28 fingerprint
= (`getFingerprint` X
.HashSHA256
)