2
J'ai été incapable de trouver des exemples de cryptage RSA-OAEP dans IE11.Cryptage RSA-OEP dans ie11
Voici un extrait de ma mise en œuvre, dans lequel je reçois une erreur très vague.
function convertStringToArrayBufferView(str) {
var bytes = new Uint8Array(str.length);
for (var iii = 0; iii < str.length; iii++) {
bytes[iii] = str.charCodeAt(iii);
}
return bytes;
}
var crypto = window.crypto || window.msCrypto;
var config = {
name: 'RSA-OAEP',
modulusLength: 2048,
publicExponent: new Uint8Array([0x01, 0x00, 0x01]),
hash: {
name: 'SHA-256'
}
};
var keyOp = crypto.subtle.generateKey(config, false, ['encrypt', 'decrypt']);
keyOp.onerror = function(e) {
console.error(e);
};
keyOp.oncomplete = function(e) {
encrypt(e.target.result);
};
function encrypt(keypair) {
var data = "abc1234444"
var encOp = crypto.subtle.encrypt({
name: config.name,
iv: config.iv || crypto.getRandomValues(new Uint8Array(16)),
key: keypair.publicKey
}, keypair.publicKey, convertStringToArrayBufferView(data));
encOp.onerror = function(e) {
console.error(e);
};
encOp.oncomplete = function(e) {
console.log({
data: new Uint8Array(e.target.result)
});
};
}
Quand je change l'algorithme de RSAES-PKCS1-v1_5, tout fonctionne parfaitement
function convertStringToArrayBufferView(str) {
var bytes = new Uint8Array(str.length);
for (var iii = 0; iii < str.length; iii++) {
bytes[iii] = str.charCodeAt(iii);
}
return bytes;
}
var crypto = window.crypto || window.msCrypto;
var config = {
name: 'RSAES-PKCS1-v1_5',
modulusLength: 2048,
publicExponent: new Uint8Array([0x01, 0x00, 0x01]),
hash: {
name: 'SHA-256'
}
};
var keyOp = crypto.subtle.generateKey(config, false, ['encrypt', 'decrypt']);
keyOp.onerror = function(e) {
console.error(e);
};
keyOp.oncomplete = function(e) {
encrypt(e.target.result);
};
function encrypt(keypair) {
var data = "abc1234444"
var encOp = crypto.subtle.encrypt({
name: config.name,
iv: config.iv || crypto.getRandomValues(new Uint8Array(16)),
key: keypair.publicKey
}, keypair.publicKey, convertStringToArrayBufferView(data));
encOp.onerror = function(e) {
console.error(e);
};
encOp.oncomplete = function(e) {
console.log({
data: new Uint8Array(e.target.result)
});
};
}
Tu es assez vague sur l'erreur * vague *. Qu'Est-ce que c'est? –
** Erreur **. Si je creuse un peu plus profondément dans l'objet, alors je trouverai un message ** Unable to get property 'de référence non défini ou nul ** mais je ne suis pas convaincu que cela ait quelque chose à voir avec le problème ici. S'il vous plaît laissez-moi savoir si vous ne rencontrez pas le même problème dans IE11 lorsque vous exécutez l'extrait de code ci-dessus. – chimon