mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 552951 nsKeygenFormProcessor::GetPublicKey doesn't use pqgParams/arena created by decode_pqg_params
r=kaie
This commit is contained in:
parent
9cda45b61f
commit
7a344a9ce9
@ -513,7 +513,6 @@ nsKeygenFormProcessor::GetPublicKey(nsAString& aValue, nsAString& aChallenge,
|
|||||||
KeyType type;
|
KeyType type;
|
||||||
PRUint32 keyGenMechanism;
|
PRUint32 keyGenMechanism;
|
||||||
PRInt32 primeBits;
|
PRInt32 primeBits;
|
||||||
PQGParams *pqgParams;
|
|
||||||
PK11SlotInfo *slot = nsnull;
|
PK11SlotInfo *slot = nsnull;
|
||||||
PK11RSAGenParams rsaParams;
|
PK11RSAGenParams rsaParams;
|
||||||
SECOidTag algTag;
|
SECOidTag algTag;
|
||||||
@ -577,7 +576,7 @@ nsKeygenFormProcessor::GetPublicKey(nsAString& aValue, nsAString& aChallenge,
|
|||||||
} while (end != nsnull);
|
} while (end != nsnull);
|
||||||
goto loser;
|
goto loser;
|
||||||
found_match:
|
found_match:
|
||||||
pqgParams = decode_pqg_params(str);
|
(void)0;
|
||||||
} else if (aKeyType.LowerCaseEqualsLiteral("ec")) {
|
} else if (aKeyType.LowerCaseEqualsLiteral("ec")) {
|
||||||
keyparamsString = ToNewCString(aKeyParams);
|
keyparamsString = ToNewCString(aKeyParams);
|
||||||
if (!keyparamsString) {
|
if (!keyparamsString) {
|
||||||
@ -597,7 +596,7 @@ found_match:
|
|||||||
if (NS_FAILED(rv)) {
|
if (NS_FAILED(rv)) {
|
||||||
goto loser;
|
goto loser;
|
||||||
}
|
}
|
||||||
switch (keyGenMechanism) {
|
switch (keyGenMechanism) {
|
||||||
case CKM_RSA_PKCS_KEY_PAIR_GEN:
|
case CKM_RSA_PKCS_KEY_PAIR_GEN:
|
||||||
rsaParams.keySizeInBits = keysize;
|
rsaParams.keySizeInBits = keysize;
|
||||||
rsaParams.pe = DEFAULT_RSA_KEYGEN_PE;
|
rsaParams.pe = DEFAULT_RSA_KEYGEN_PE;
|
||||||
@ -656,7 +655,7 @@ found_match:
|
|||||||
/* Make sure token is initialized. */
|
/* Make sure token is initialized. */
|
||||||
rv = setPassword(slot, m_ctx);
|
rv = setPassword(slot, m_ctx);
|
||||||
if (NS_FAILED(rv))
|
if (NS_FAILED(rv))
|
||||||
goto loser;
|
goto loser;
|
||||||
|
|
||||||
sec_rv = PK11_Authenticate(slot, PR_TRUE, m_ctx);
|
sec_rv = PK11_Authenticate(slot, PR_TRUE, m_ctx);
|
||||||
if (sec_rv != SECSuccess) {
|
if (sec_rv != SECSuccess) {
|
||||||
@ -669,9 +668,7 @@ found_match:
|
|||||||
|
|
||||||
if (NS_SUCCEEDED(rv)) {
|
if (NS_SUCCEEDED(rv)) {
|
||||||
KeygenRunnable = new nsKeygenThread();
|
KeygenRunnable = new nsKeygenThread();
|
||||||
if (KeygenRunnable) {
|
NS_IF_ADDREF(KeygenRunnable);
|
||||||
NS_ADDREF(KeygenRunnable);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (NS_FAILED(rv) || !KeygenRunnable) {
|
if (NS_FAILED(rv) || !KeygenRunnable) {
|
||||||
@ -774,7 +771,7 @@ loser:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( spkInfo ) {
|
if ( spkInfo ) {
|
||||||
SECKEY_DestroySubjectPublicKeyInfo(spkInfo);
|
SECKEY_DestroySubjectPublicKeyInfo(spkInfo);
|
||||||
}
|
}
|
||||||
if ( publicKey ) {
|
if ( publicKey ) {
|
||||||
SECKEY_DestroyPublicKey(publicKey);
|
SECKEY_DestroyPublicKey(publicKey);
|
||||||
@ -783,13 +780,13 @@ loser:
|
|||||||
SECKEY_DestroyPrivateKey(privateKey);
|
SECKEY_DestroyPrivateKey(privateKey);
|
||||||
}
|
}
|
||||||
if ( arena ) {
|
if ( arena ) {
|
||||||
PORT_FreeArena(arena, PR_TRUE);
|
PORT_FreeArena(arena, PR_TRUE);
|
||||||
}
|
}
|
||||||
if (slot != nsnull) {
|
if (slot != nsnull) {
|
||||||
PK11_FreeSlot(slot);
|
PK11_FreeSlot(slot);
|
||||||
}
|
}
|
||||||
if (KeygenRunnable) {
|
if (KeygenRunnable) {
|
||||||
NS_RELEASE(KeygenRunnable);
|
NS_RELEASE(KeygenRunnable);
|
||||||
}
|
}
|
||||||
if (keyparamsString) {
|
if (keyparamsString) {
|
||||||
nsMemory::Free(keyparamsString);
|
nsMemory::Free(keyparamsString);
|
||||||
|
Loading…
Reference in New Issue
Block a user