| // Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| /// This library contains bindings to a few helpful methods from node's `crypto` |
| /// module (https://nodejs.org/api/crypto.html). |
| @JS() |
| library github_label_notifier.node_crypto; |
| |
| import 'package:js/js.dart'; |
| import 'package:node_interop/node.dart'; |
| |
| final CryptoModule crypto = require('crypto'); |
| |
| @JS() |
| @anonymous |
| abstract class CryptoModule { |
| /// Creates and returns an [Hmac] object that uses the given [algorithm] and |
| /// [key]. |
| /// |
| /// See [docs](https://nodejs.org/api/crypto.html#crypto_crypto_createhmac_algorithm_key_options). |
| external Hmac createHmac(String algorithm, String key); |
| |
| /// Compares two [Buffer] objects using a constant time algorithm. |
| /// |
| /// See [docs](https://nodejs.org/api/crypto.html#crypto_crypto_timingsafeequal_a_b). |
| external bool timingSafeEqual(Buffer a, Buffer b); |
| } |
| |
| @JS() |
| @anonymous |
| abstract class Hmac { |
| /// Append data to the content of this [Hmac]. |
| /// |
| /// See [docs](https://nodejs.org/api/crypto.html#crypto_hmac_update_data_inputencoding). |
| external Hmac update(Object data); |
| |
| /// Compute the digest of the content accumulated via [update]. |
| /// |
| /// See [docs](https://nodejs.org/api/crypto.html#crypto_hmac_digest_encoding). |
| external String digest(String encoding); |
| } |