{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.WebKitSubtleCrypto
(encrypt, encrypt_, decrypt, decrypt_, sign, sign_, verify,
verify_, digest, digest_, generateKey, generateKey_, importKey,
importKey_, exportKey, exportKey_, wrapKey, wrapKey_, unwrapKey,
unwrapKey_, WebKitSubtleCrypto(..), gTypeWebKitSubtleCrypto)
where
import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, realToFrac, fmap, Show, Read, Eq, Ord, Maybe(..))
import qualified Prelude (error)
import Data.Typeable (Typeable)
import Data.Traversable (mapM)
import Language.Javascript.JSaddle (JSM(..), JSVal(..), JSString, strictEqual, toJSVal, valToStr, valToNumber, valToBool, js, jss, jsf, jsg, function, asyncFunction, new, array, jsUndefined, (!), (!!))
import Data.Int (Int64)
import Data.Word (Word, Word64)
import JSDOM.Types
import Control.Applicative ((<$>))
import Control.Monad (void)
import Control.Lens.Operators ((^.))
import JSDOM.EventTargetClosures (EventName, unsafeEventName, unsafeEventNameAsync)
import JSDOM.Enums
encrypt ::
(MonadDOM m, ToJSString algorithm, IsCryptoOperationData data') =>
WebKitSubtleCrypto ->
algorithm -> CryptoKey -> [data'] -> m ArrayBuffer
encrypt :: WebKitSubtleCrypto
-> algorithm -> CryptoKey -> [data'] -> m ArrayBuffer
encrypt WebKitSubtleCrypto
self algorithm
algorithm CryptoKey
key [data']
data'
= DOM ArrayBuffer -> m ArrayBuffer
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(((WebKitSubtleCrypto
self WebKitSubtleCrypto
-> Getting (JSM JSVal) WebKitSubtleCrypto (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"encrypt"
[algorithm -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal algorithm
algorithm, CryptoKey -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal CryptoKey
key, JSM Object -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal ([data'] -> JSM Object
forall args. MakeArgs args => args -> JSM Object
array [data']
data')])
JSM JSVal -> (JSVal -> JSM JSVal) -> JSM JSVal
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM JSVal
readPromise)
JSM JSVal -> (JSVal -> DOM ArrayBuffer) -> DOM ArrayBuffer
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM ArrayBuffer
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)
encrypt_ ::
(MonadDOM m, ToJSString algorithm, IsCryptoOperationData data') =>
WebKitSubtleCrypto -> algorithm -> CryptoKey -> [data'] -> m ()
encrypt_ :: WebKitSubtleCrypto -> algorithm -> CryptoKey -> [data'] -> m ()
encrypt_ WebKitSubtleCrypto
self algorithm
algorithm CryptoKey
key [data']
data'
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
(WebKitSubtleCrypto
self WebKitSubtleCrypto
-> Getting (JSM JSVal) WebKitSubtleCrypto (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"encrypt"
[algorithm -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal algorithm
algorithm, CryptoKey -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal CryptoKey
key, JSM Object -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal ([data'] -> JSM Object
forall args. MakeArgs args => args -> JSM Object
array [data']
data')]))
decrypt ::
(MonadDOM m, ToJSString algorithm, IsCryptoOperationData data') =>
WebKitSubtleCrypto ->
algorithm -> CryptoKey -> [data'] -> m ArrayBuffer
decrypt :: WebKitSubtleCrypto
-> algorithm -> CryptoKey -> [data'] -> m ArrayBuffer
decrypt WebKitSubtleCrypto
self algorithm
algorithm CryptoKey
key [data']
data'
= DOM ArrayBuffer -> m ArrayBuffer
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(((WebKitSubtleCrypto
self WebKitSubtleCrypto
-> Getting (JSM JSVal) WebKitSubtleCrypto (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"decrypt"
[algorithm -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal algorithm
algorithm, CryptoKey -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal CryptoKey
key, JSM Object -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal ([data'] -> JSM Object
forall args. MakeArgs args => args -> JSM Object
array [data']
data')])
JSM JSVal -> (JSVal -> JSM JSVal) -> JSM JSVal
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM JSVal
readPromise)
JSM JSVal -> (JSVal -> DOM ArrayBuffer) -> DOM ArrayBuffer
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM ArrayBuffer
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)
decrypt_ ::
(MonadDOM m, ToJSString algorithm, IsCryptoOperationData data') =>
WebKitSubtleCrypto -> algorithm -> CryptoKey -> [data'] -> m ()
decrypt_ :: WebKitSubtleCrypto -> algorithm -> CryptoKey -> [data'] -> m ()
decrypt_ WebKitSubtleCrypto
self algorithm
algorithm CryptoKey
key [data']
data'
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
(WebKitSubtleCrypto
self WebKitSubtleCrypto
-> Getting (JSM JSVal) WebKitSubtleCrypto (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"decrypt"
[algorithm -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal algorithm
algorithm, CryptoKey -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal CryptoKey
key, JSM Object -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal ([data'] -> JSM Object
forall args. MakeArgs args => args -> JSM Object
array [data']
data')]))
sign ::
(MonadDOM m, ToJSString algorithm, IsCryptoOperationData data') =>
WebKitSubtleCrypto ->
algorithm -> CryptoKey -> [data'] -> m ArrayBuffer
sign :: WebKitSubtleCrypto
-> algorithm -> CryptoKey -> [data'] -> m ArrayBuffer
sign WebKitSubtleCrypto
self algorithm
algorithm CryptoKey
key [data']
data'
= DOM ArrayBuffer -> m ArrayBuffer
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(((WebKitSubtleCrypto
self WebKitSubtleCrypto
-> Getting (JSM JSVal) WebKitSubtleCrypto (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"sign"
[algorithm -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal algorithm
algorithm, CryptoKey -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal CryptoKey
key, JSM Object -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal ([data'] -> JSM Object
forall args. MakeArgs args => args -> JSM Object
array [data']
data')])
JSM JSVal -> (JSVal -> JSM JSVal) -> JSM JSVal
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM JSVal
readPromise)
JSM JSVal -> (JSVal -> DOM ArrayBuffer) -> DOM ArrayBuffer
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM ArrayBuffer
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)
sign_ ::
(MonadDOM m, ToJSString algorithm, IsCryptoOperationData data') =>
WebKitSubtleCrypto -> algorithm -> CryptoKey -> [data'] -> m ()
sign_ :: WebKitSubtleCrypto -> algorithm -> CryptoKey -> [data'] -> m ()
sign_ WebKitSubtleCrypto
self algorithm
algorithm CryptoKey
key [data']
data'
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
(WebKitSubtleCrypto
self WebKitSubtleCrypto
-> Getting (JSM JSVal) WebKitSubtleCrypto (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"sign"
[algorithm -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal algorithm
algorithm, CryptoKey -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal CryptoKey
key, JSM Object -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal ([data'] -> JSM Object
forall args. MakeArgs args => args -> JSM Object
array [data']
data')]))
verify ::
(MonadDOM m, ToJSString algorithm, IsCryptoOperationData signature,
IsCryptoOperationData data') =>
WebKitSubtleCrypto ->
algorithm -> CryptoKey -> signature -> [data'] -> m Bool
verify :: WebKitSubtleCrypto
-> algorithm -> CryptoKey -> signature -> [data'] -> m Bool
verify WebKitSubtleCrypto
self algorithm
algorithm CryptoKey
key signature
signature [data']
data'
= DOM Bool -> m Bool
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(((WebKitSubtleCrypto
self WebKitSubtleCrypto
-> Getting (JSM JSVal) WebKitSubtleCrypto (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"verify"
[algorithm -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal algorithm
algorithm, CryptoKey -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal CryptoKey
key, signature -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal signature
signature,
JSM Object -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal ([data'] -> JSM Object
forall args. MakeArgs args => args -> JSM Object
array [data']
data')])
JSM JSVal -> (JSVal -> JSM JSVal) -> JSM JSVal
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM JSVal
readPromise)
JSM JSVal -> (JSVal -> DOM Bool) -> DOM Bool
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Bool
forall value. ToJSVal value => value -> DOM Bool
valToBool)
verify_ ::
(MonadDOM m, ToJSString algorithm, IsCryptoOperationData signature,
IsCryptoOperationData data') =>
WebKitSubtleCrypto ->
algorithm -> CryptoKey -> signature -> [data'] -> m ()
verify_ :: WebKitSubtleCrypto
-> algorithm -> CryptoKey -> signature -> [data'] -> m ()
verify_ WebKitSubtleCrypto
self algorithm
algorithm CryptoKey
key signature
signature [data']
data'
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
(WebKitSubtleCrypto
self WebKitSubtleCrypto
-> Getting (JSM JSVal) WebKitSubtleCrypto (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"verify"
[algorithm -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal algorithm
algorithm, CryptoKey -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal CryptoKey
key, signature -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal signature
signature,
JSM Object -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal ([data'] -> JSM Object
forall args. MakeArgs args => args -> JSM Object
array [data']
data')]))
digest ::
(MonadDOM m, ToJSString algorithm, IsCryptoOperationData data') =>
WebKitSubtleCrypto -> algorithm -> [data'] -> m ArrayBuffer
digest :: WebKitSubtleCrypto -> algorithm -> [data'] -> m ArrayBuffer
digest WebKitSubtleCrypto
self algorithm
algorithm [data']
data'
= DOM ArrayBuffer -> m ArrayBuffer
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(((WebKitSubtleCrypto
self WebKitSubtleCrypto
-> Getting (JSM JSVal) WebKitSubtleCrypto (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"digest" [algorithm -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal algorithm
algorithm, JSM Object -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal ([data'] -> JSM Object
forall args. MakeArgs args => args -> JSM Object
array [data']
data')])
JSM JSVal -> (JSVal -> JSM JSVal) -> JSM JSVal
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM JSVal
readPromise)
JSM JSVal -> (JSVal -> DOM ArrayBuffer) -> DOM ArrayBuffer
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM ArrayBuffer
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)
digest_ ::
(MonadDOM m, ToJSString algorithm, IsCryptoOperationData data') =>
WebKitSubtleCrypto -> algorithm -> [data'] -> m ()
digest_ :: WebKitSubtleCrypto -> algorithm -> [data'] -> m ()
digest_ WebKitSubtleCrypto
self algorithm
algorithm [data']
data'
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
(WebKitSubtleCrypto
self WebKitSubtleCrypto
-> Getting (JSM JSVal) WebKitSubtleCrypto (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"digest" [algorithm -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal algorithm
algorithm, JSM Object -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal ([data'] -> JSM Object
forall args. MakeArgs args => args -> JSM Object
array [data']
data')]))
generateKey ::
(MonadDOM m, ToJSString algorithm) =>
WebKitSubtleCrypto ->
algorithm -> Bool -> [CryptoKeyUsage] -> m CryptoKeyOrKeyPair
generateKey :: WebKitSubtleCrypto
-> algorithm -> Bool -> [CryptoKeyUsage] -> m CryptoKeyOrKeyPair
generateKey WebKitSubtleCrypto
self algorithm
algorithm Bool
extractable [CryptoKeyUsage]
keyUsages
= DOM CryptoKeyOrKeyPair -> m CryptoKeyOrKeyPair
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(((WebKitSubtleCrypto
self WebKitSubtleCrypto
-> Getting (JSM JSVal) WebKitSubtleCrypto (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"generateKey"
[algorithm -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal algorithm
algorithm, Bool -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Bool
extractable,
JSM Object -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal ([CryptoKeyUsage] -> JSM Object
forall args. MakeArgs args => args -> JSM Object
array [CryptoKeyUsage]
keyUsages)])
JSM JSVal -> (JSVal -> JSM JSVal) -> JSM JSVal
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM JSVal
readPromise)
JSM JSVal
-> (JSVal -> DOM CryptoKeyOrKeyPair) -> DOM CryptoKeyOrKeyPair
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM CryptoKeyOrKeyPair
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)
generateKey_ ::
(MonadDOM m, ToJSString algorithm) =>
WebKitSubtleCrypto -> algorithm -> Bool -> [CryptoKeyUsage] -> m ()
generateKey_ :: WebKitSubtleCrypto -> algorithm -> Bool -> [CryptoKeyUsage] -> m ()
generateKey_ WebKitSubtleCrypto
self algorithm
algorithm Bool
extractable [CryptoKeyUsage]
keyUsages
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
(WebKitSubtleCrypto
self WebKitSubtleCrypto
-> Getting (JSM JSVal) WebKitSubtleCrypto (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"generateKey"
[algorithm -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal algorithm
algorithm, Bool -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Bool
extractable,
JSM Object -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal ([CryptoKeyUsage] -> JSM Object
forall args. MakeArgs args => args -> JSM Object
array [CryptoKeyUsage]
keyUsages)]))
importKey ::
(MonadDOM m, ToJSString format, IsCryptoOperationData keyData,
ToJSString algorithm) =>
WebKitSubtleCrypto ->
format ->
keyData ->
Maybe algorithm -> Bool -> [CryptoKeyUsage] -> m CryptoKey
importKey :: WebKitSubtleCrypto
-> format
-> keyData
-> Maybe algorithm
-> Bool
-> [CryptoKeyUsage]
-> m CryptoKey
importKey WebKitSubtleCrypto
self format
format keyData
keyData Maybe algorithm
algorithm Bool
extractable [CryptoKeyUsage]
keyUsages
= DOM CryptoKey -> m CryptoKey
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(((WebKitSubtleCrypto
self WebKitSubtleCrypto
-> Getting (JSM JSVal) WebKitSubtleCrypto (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"importKey"
[format -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal format
format, keyData -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal keyData
keyData, Maybe algorithm -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe algorithm
algorithm,
Bool -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Bool
extractable, JSM Object -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal ([CryptoKeyUsage] -> JSM Object
forall args. MakeArgs args => args -> JSM Object
array [CryptoKeyUsage]
keyUsages)])
JSM JSVal -> (JSVal -> JSM JSVal) -> JSM JSVal
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM JSVal
readPromise)
JSM JSVal -> (JSVal -> DOM CryptoKey) -> DOM CryptoKey
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM CryptoKey
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)
importKey_ ::
(MonadDOM m, ToJSString format, IsCryptoOperationData keyData,
ToJSString algorithm) =>
WebKitSubtleCrypto ->
format ->
keyData -> Maybe algorithm -> Bool -> [CryptoKeyUsage] -> m ()
importKey_ :: WebKitSubtleCrypto
-> format
-> keyData
-> Maybe algorithm
-> Bool
-> [CryptoKeyUsage]
-> m ()
importKey_ WebKitSubtleCrypto
self format
format keyData
keyData Maybe algorithm
algorithm Bool
extractable [CryptoKeyUsage]
keyUsages
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
(WebKitSubtleCrypto
self WebKitSubtleCrypto
-> Getting (JSM JSVal) WebKitSubtleCrypto (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"importKey"
[format -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal format
format, keyData -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal keyData
keyData, Maybe algorithm -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe algorithm
algorithm,
Bool -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Bool
extractable, JSM Object -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal ([CryptoKeyUsage] -> JSM Object
forall args. MakeArgs args => args -> JSM Object
array [CryptoKeyUsage]
keyUsages)]))
exportKey ::
(MonadDOM m, ToJSString format) =>
WebKitSubtleCrypto -> format -> CryptoKey -> m ArrayBuffer
exportKey :: WebKitSubtleCrypto -> format -> CryptoKey -> m ArrayBuffer
exportKey WebKitSubtleCrypto
self format
format CryptoKey
key
= DOM ArrayBuffer -> m ArrayBuffer
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(((WebKitSubtleCrypto
self WebKitSubtleCrypto
-> Getting (JSM JSVal) WebKitSubtleCrypto (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"exportKey" [format -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal format
format, CryptoKey -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal CryptoKey
key]) JSM JSVal -> (JSVal -> JSM JSVal) -> JSM JSVal
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
JSVal -> JSM JSVal
readPromise)
JSM JSVal -> (JSVal -> DOM ArrayBuffer) -> DOM ArrayBuffer
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM ArrayBuffer
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)
exportKey_ ::
(MonadDOM m, ToJSString format) =>
WebKitSubtleCrypto -> format -> CryptoKey -> m ()
exportKey_ :: WebKitSubtleCrypto -> format -> CryptoKey -> m ()
exportKey_ WebKitSubtleCrypto
self format
format CryptoKey
key
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (WebKitSubtleCrypto
self WebKitSubtleCrypto
-> Getting (JSM JSVal) WebKitSubtleCrypto (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"exportKey" [format -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal format
format, CryptoKey -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal CryptoKey
key]))
wrapKey ::
(MonadDOM m, ToJSString format, ToJSString wrapAlgorithm) =>
WebKitSubtleCrypto ->
format -> CryptoKey -> CryptoKey -> wrapAlgorithm -> m ArrayBuffer
wrapKey :: WebKitSubtleCrypto
-> format
-> CryptoKey
-> CryptoKey
-> wrapAlgorithm
-> m ArrayBuffer
wrapKey WebKitSubtleCrypto
self format
format CryptoKey
key CryptoKey
wrappingKey wrapAlgorithm
wrapAlgorithm
= DOM ArrayBuffer -> m ArrayBuffer
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(((WebKitSubtleCrypto
self WebKitSubtleCrypto
-> Getting (JSM JSVal) WebKitSubtleCrypto (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"wrapKey"
[format -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal format
format, CryptoKey -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal CryptoKey
key, CryptoKey -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal CryptoKey
wrappingKey,
wrapAlgorithm -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal wrapAlgorithm
wrapAlgorithm])
JSM JSVal -> (JSVal -> JSM JSVal) -> JSM JSVal
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM JSVal
readPromise)
JSM JSVal -> (JSVal -> DOM ArrayBuffer) -> DOM ArrayBuffer
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM ArrayBuffer
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)
wrapKey_ ::
(MonadDOM m, ToJSString format, ToJSString wrapAlgorithm) =>
WebKitSubtleCrypto ->
format -> CryptoKey -> CryptoKey -> wrapAlgorithm -> m ()
wrapKey_ :: WebKitSubtleCrypto
-> format -> CryptoKey -> CryptoKey -> wrapAlgorithm -> m ()
wrapKey_ WebKitSubtleCrypto
self format
format CryptoKey
key CryptoKey
wrappingKey wrapAlgorithm
wrapAlgorithm
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
(WebKitSubtleCrypto
self WebKitSubtleCrypto
-> Getting (JSM JSVal) WebKitSubtleCrypto (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"wrapKey"
[format -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal format
format, CryptoKey -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal CryptoKey
key, CryptoKey -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal CryptoKey
wrappingKey,
wrapAlgorithm -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal wrapAlgorithm
wrapAlgorithm]))
unwrapKey ::
(MonadDOM m, ToJSString format, IsCryptoOperationData wrappedKey,
ToJSString unwrapAlgorithm, ToJSString unwrappedKeyAlgorithm) =>
WebKitSubtleCrypto ->
format ->
wrappedKey ->
CryptoKey ->
unwrapAlgorithm ->
Maybe unwrappedKeyAlgorithm ->
Bool -> [CryptoKeyUsage] -> m CryptoKey
unwrapKey :: WebKitSubtleCrypto
-> format
-> wrappedKey
-> CryptoKey
-> unwrapAlgorithm
-> Maybe unwrappedKeyAlgorithm
-> Bool
-> [CryptoKeyUsage]
-> m CryptoKey
unwrapKey WebKitSubtleCrypto
self format
format wrappedKey
wrappedKey CryptoKey
unwrappingKey unwrapAlgorithm
unwrapAlgorithm
Maybe unwrappedKeyAlgorithm
unwrappedKeyAlgorithm Bool
extractable [CryptoKeyUsage]
keyUsages
= DOM CryptoKey -> m CryptoKey
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(((WebKitSubtleCrypto
self WebKitSubtleCrypto
-> Getting (JSM JSVal) WebKitSubtleCrypto (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"unwrapKey"
[format -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal format
format, wrappedKey -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal wrappedKey
wrappedKey, CryptoKey -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal CryptoKey
unwrappingKey,
unwrapAlgorithm -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal unwrapAlgorithm
unwrapAlgorithm, Maybe unwrappedKeyAlgorithm -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe unwrappedKeyAlgorithm
unwrappedKeyAlgorithm,
Bool -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Bool
extractable, JSM Object -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal ([CryptoKeyUsage] -> JSM Object
forall args. MakeArgs args => args -> JSM Object
array [CryptoKeyUsage]
keyUsages)])
JSM JSVal -> (JSVal -> JSM JSVal) -> JSM JSVal
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM JSVal
readPromise)
JSM JSVal -> (JSVal -> DOM CryptoKey) -> DOM CryptoKey
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM CryptoKey
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)
unwrapKey_ ::
(MonadDOM m, ToJSString format, IsCryptoOperationData wrappedKey,
ToJSString unwrapAlgorithm, ToJSString unwrappedKeyAlgorithm) =>
WebKitSubtleCrypto ->
format ->
wrappedKey ->
CryptoKey ->
unwrapAlgorithm ->
Maybe unwrappedKeyAlgorithm -> Bool -> [CryptoKeyUsage] -> m ()
unwrapKey_ :: WebKitSubtleCrypto
-> format
-> wrappedKey
-> CryptoKey
-> unwrapAlgorithm
-> Maybe unwrappedKeyAlgorithm
-> Bool
-> [CryptoKeyUsage]
-> m ()
unwrapKey_ WebKitSubtleCrypto
self format
format wrappedKey
wrappedKey CryptoKey
unwrappingKey unwrapAlgorithm
unwrapAlgorithm
Maybe unwrappedKeyAlgorithm
unwrappedKeyAlgorithm Bool
extractable [CryptoKeyUsage]
keyUsages
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
(WebKitSubtleCrypto
self WebKitSubtleCrypto
-> Getting (JSM JSVal) WebKitSubtleCrypto (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"unwrapKey"
[format -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal format
format, wrappedKey -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal wrappedKey
wrappedKey, CryptoKey -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal CryptoKey
unwrappingKey,
unwrapAlgorithm -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal unwrapAlgorithm
unwrapAlgorithm, Maybe unwrappedKeyAlgorithm -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe unwrappedKeyAlgorithm
unwrappedKeyAlgorithm,
Bool -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Bool
extractable, JSM Object -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal ([CryptoKeyUsage] -> JSM Object
forall args. MakeArgs args => args -> JSM Object
array [CryptoKeyUsage]
keyUsages)]))