module Codec.Encryption.OpenPGP.Fingerprint ( eightOctetKeyID , fingerprint ) where import qualified Crypto.Hash.SHA1 as SHA1 import qualified Data.ByteString as B import Data.Word (Word64) import Data.Serialize.Put (runPut) import Codec.Encryption.OpenPGP.SerializeForSigs (putPKPforFingerprinting) import Codec.Encryption.OpenPGP.Types eightOctetKeyID :: PKPayload -> EightOctetKeyId eightOctetKeyID = EightOctetKeyId . B.drop 12 . unTOF . fingerprint fingerprint :: PKPayload -> TwentyOctetFingerprint fingerprint (PubV4 ts pka pk) = (TwentyOctetFingerprint . SHA1.hash) (runPut $ putPKPforFingerprinting (PublicKey (PubV4 ts pka pk)))