/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=8 sts=2 et sw=2 tw=80: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
class JSObject; struct JSContext; struct JSStructuredCloneReader; struct JSStructuredCloneWriter;
#define KEY_ALGORITHM_SC_VERSION 0x00000001
namespace mozilla::dom {
// A heap-safe variant of RsaHashedKeyAlgorithm // The only difference is that it uses CryptoBuffer instead of Uint8Array struct RsaHashedKeyAlgorithmStorage {
nsString mName;
KeyAlgorithm mHash;
uint16_t mModulusLength;
CryptoBuffer mPublicExponent;
// This class encapuslates a KeyAlgorithm object, and adds several // methods that make WebCrypto operations simpler. struct KeyAlgorithmProxy { enum KeyAlgorithmType { AES, HMAC, RSA, EC, KDF, OKP };
KeyAlgorithmType mType;
// Plain is always populated with the algorithm name // Others are only populated for the corresponding key type
nsString mName;
AesKeyAlgorithm mAes;
HmacKeyAlgorithm mHmac;
RsaHashedKeyAlgorithmStorage mRsa;
EcKeyAlgorithm mEc;
KeyAlgorithm mKDF;
KeyAlgorithm mEd;
// Extract various forms of derived information
CK_MECHANISM_TYPE Mechanism() const;
nsString JwkAlg() const;
// And in static form for calling on raw KeyAlgorithm dictionaries static CK_MECHANISM_TYPE GetMechanism(const KeyAlgorithm& aAlgorithm); static CK_MECHANISM_TYPE GetMechanism(const HmacKeyAlgorithm& aAlgorithm); static nsString GetJwkAlg(const KeyAlgorithm& aAlgorithm);
// Construction of the various algorithm types void MakeAes(const nsString& aName, uint32_t aLength) {
mType = AES;
mName = aName;
mAes.mName = aName;
mAes.mLength = aLength;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.