UNPKG

crypto-react

Version:

JavaScript library of Cryptography Standard for react.

39 lines (35 loc) 909 B
import { useState, useEffect } from 'react'; import hmac from './hmac'; import Encoders from '../Encoders/Encoders'; import HmacAlgorithms from './Algorithms'; const useHmac = ( config = { message: 'message', secret: 'SecretKey', algorithm: HmacAlgorithms.HmacMD5, encoder: Encoders.hex, }, ) => { const [cfg, setCfg] = useState({ message: 'message', secret: 'SecretKey', algorithm: HmacAlgorithms.HmacMD5, encoder: Encoders.hex, ...config, }); const [hmacMessage, setHmacMessage] = useState(); useEffect(() => { const hmacHasher = () => hmac( cfg.message, cfg.secret, cfg.algorithm, cfg.encoder, ).then((a) => setHmacMessage(a)); hmacHasher(); }, [cfg]); return [ hmacMessage, (newCfg) => setCfg((prevCfg) => ({ ...prevCfg, ...newCfg })), ]; }; export default useHmac;