Bug 1773182 - Add NS_NewCryptoHash helper r=xpcom-reviewers,kmag,nika

Differential Revision: https://phabricator.services.mozilla.com/D148965
This commit is contained in:
Barret Rennie 2022-06-20 13:57:29 +00:00
parent 3ec010c2b1
commit 1a02416780
2 changed files with 41 additions and 0 deletions

View File

@ -175,3 +175,34 @@ nsCryptoHash::Finish(bool ascii, nsACString& _retval) {
_retval.Assign(BitwiseCast<char*>(buffer), hashLen);
return NS_OK;
}
already_AddRefed<nsICryptoHash> NS_NewCryptoHash() {
return MakeAndAddRef<nsCryptoHash>();
}
nsresult NS_NewCryptoHash(uint32_t aHashType, nsICryptoHash** aOutHasher) {
MOZ_ASSERT(aOutHasher);
nsCOMPtr<nsICryptoHash> hasher = new nsCryptoHash();
nsresult rv = hasher->Init(aHashType);
if (NS_SUCCEEDED(rv)) {
hasher.forget(aOutHasher);
}
return rv;
}
nsresult NS_NewCryptoHash(const nsACString& aHashType,
nsICryptoHash** aOutHasher) {
MOZ_ASSERT(aOutHasher);
nsCOMPtr<nsICryptoHash> hasher = new nsCryptoHash();
nsresult rv = hasher->InitWithString(aHashType);
if (NS_SUCCEEDED(rv)) {
hasher.forget(aOutHasher);
}
return rv;
}

View File

@ -5,6 +5,10 @@
#include "nsISupports.idl"
interface nsIInputStream;
%{C++
#include "mozilla/AlreadyAddRefed.h"
%}
/**
* nsICryptoHash
* This interface provides crytographic hashing algorithms.
@ -101,3 +105,9 @@ interface nsICryptoHash : nsISupports
*/
ACString finish(in boolean aASCII);
};
%{C++
already_AddRefed<nsICryptoHash> NS_NewCryptoHash();
nsresult NS_NewCryptoHash(uint32_t aHashType, nsICryptoHash** aOutHasher);
nsresult NS_NewCryptoHash(const nsACString& aHashType, nsICryptoHash** aOutHasher);
%}