1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
- *
- * 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/. */
- #ifndef nsKeygenHandler_h
- #define nsKeygenHandler_h
- #include "ScopedNSSTypes.h"
- #include "keythi.h"
- #include "nsCOMPtr.h"
- #include "nsError.h"
- #include "nsIFormProcessor.h"
- #include "nsIInterfaceRequestor.h"
- #include "nsNSSShutDown.h"
- #include "nsTArray.h"
- #include "secmodt.h"
- nsresult GetSlotWithMechanism(uint32_t mechanism,
- nsIInterfaceRequestor* ctx,
- PK11SlotInfo** retSlot,
- nsNSSShutDownPreventionLock& /*proofOfLock*/);
- #define DEFAULT_RSA_KEYGEN_PE 65537L
- #define DEFAULT_RSA_KEYGEN_ALG SEC_OID_PKCS1_MD5_WITH_RSA_ENCRYPTION
- mozilla::UniqueSECItem DecodeECParams(const char* curve);
- class nsKeygenFormProcessor : public nsIFormProcessor
- , public nsNSSShutDownObject
- {
- public:
- nsKeygenFormProcessor();
- nsresult Init();
- virtual nsresult ProcessValue(nsIDOMHTMLElement* aElement,
- const nsAString& aName,
- nsAString& aValue) override;
- virtual nsresult ProcessValueIPC(const nsAString& aOldValue,
- const nsAString& aChallenge,
- const nsAString& aKeyType,
- const nsAString& aKeyParams,
- nsAString& aNewValue) override;
- virtual nsresult ProvideContent(const nsAString& aFormType,
- nsTArray<nsString>& aContent,
- nsAString& aAttribute) override;
- NS_DECL_THREADSAFE_ISUPPORTS
- static nsresult Create(nsISupports* aOuter, const nsIID& aIID, void* *aResult);
- static void ExtractParams(nsIDOMHTMLElement* aElement,
- nsAString& challengeValue,
- nsAString& keyTypeValue,
- nsAString& keyParamsValue);
- // Nothing to release.
- virtual void virtualDestroyNSSReference() override {}
- protected:
- virtual ~nsKeygenFormProcessor();
- nsresult GetPublicKey(const nsAString& aValue, const nsAString& aChallenge,
- const nsAFlatString& akeyType, nsAString& aOutPublicKey,
- const nsAString& aPqg);
- nsresult GetSlot(uint32_t aMechanism, PK11SlotInfo** aSlot);
- private:
- nsCOMPtr<nsIInterfaceRequestor> m_ctx;
- typedef struct SECKeySizeChoiceInfoStr {
- nsString name;
- int size;
- } SECKeySizeChoiceInfo;
- enum { number_of_key_size_choices = 2 };
- SECKeySizeChoiceInfo mSECKeySizeChoiceList[number_of_key_size_choices];
- };
- #endif // nsKeygenHandler_h
|