Bump CryptoID

This commit is contained in:
Gregor Kleen 2017-10-11 00:00:20 +02:00
parent 0cba4ca023
commit 11895f6709
2 changed files with 8 additions and 9 deletions

View File

@ -39,7 +39,6 @@ import qualified Data.Text.Lazy.Encoding as Lazy.Text
import qualified Data.CaseInsensitive as CI import qualified Data.CaseInsensitive as CI
import qualified Data.ByteString.Lazy as Lazy (ByteString) import qualified Data.ByteString.Lazy as Lazy (ByteString)
import qualified Data.ByteString.Lazy as Lazy.ByteString
import Text.Read (readEither) import Text.Read (readEither)
@ -82,7 +81,7 @@ getRating submissionId = runMaybeT $ do
Sheet{ sheetCourseId, sheetName = ratingSheetName } <- MaybeT $ get submissionSheetId Sheet{ sheetCourseId, sheetName = ratingSheetName } <- MaybeT $ get submissionSheetId
Course{ courseName = ratingCourseName } <- MaybeT $ get sheetCourseId Course{ courseName = ratingCourseName } <- MaybeT $ get sheetCourseId
cIDKey <- getsYesod appCryptoIDKey cIDKey <- getsYesod appCryptoIDKey
ratingSubmissionId <- Poly.encrypt base32 cIDKey submissionId ratingSubmissionId <- Poly.encrypt Nothing base32 cIDKey submissionId
return Rating{..} return Rating{..}
where where
base32 = return . CI.foldCase . Text.unpack . Text.dropWhileEnd (== '=') . Text.decodeUtf8 . Base32.encode base32 = return . CI.foldCase . Text.unpack . Text.dropWhileEnd (== '=') . Text.decodeUtf8 . Base32.encode
@ -157,12 +156,12 @@ isRatingFile fName
(Just <$> Poly.decrypt unbase32 cIDKey cID) `catch` decryptErrors (Just <$> Poly.decrypt unbase32 cIDKey cID) `catch` decryptErrors
| otherwise = return Nothing | otherwise = return Nothing
where where
unbase32 = either (const $ throwM CiphertextConversionFailed) return . Base32.decode . Text.encodeUtf8 . Text.pack . toUpper . (<> "===") unbase32 = (\bs -> either (const . throwM $ CiphertextConversionFailed bs) return $ Base32.decode bs) . Text.encodeUtf8 . Text.pack . toUpper . (<> "===")
decryptErrors CiphertextConversionFailed = return Nothing decryptErrors (CiphertextConversionFailed _) = return Nothing
decryptErrors InvalidNamespaceDetected = return Nothing decryptErrors InvalidNamespaceDetected = return Nothing
decryptErrors (DeserializationError _) = return Nothing decryptErrors DeserializationError = return Nothing
decryptErrors err = throwM err decryptErrors err = throwM err
isRatingFile' :: FilePath -> Maybe (CryptoIDSubmission String) isRatingFile' :: FilePath -> Maybe (CryptoIDSubmission String)
isRatingFile' (takeFileName -> fName) isRatingFile' (takeFileName -> fName)

View File

@ -10,7 +10,7 @@ extra-deps:
- colonnade-1.1.1 - colonnade-1.1.1
- yesod-colonnade-1.1.0 - yesod-colonnade-1.1.0
- zip-stream-0.1.0.1 - zip-stream-0.1.0.1
- uuid-crypto-1.1.1.0 - uuid-crypto-1.2.0.0
- cryptoids-0.2.0.0 - cryptoids-0.3.0.0
- cryptoids-types-0.0.0 - cryptoids-types-0.0.0
resolver: lts-9.3 resolver: lts-9.3