Fix #4: delete TranslatePaymentPINData (duplicate of TranslatePINBlock)
This commit is contained in:
parent
0aadfb94e3
commit
01f396d121
@ -602,7 +602,6 @@
|
|||||||
"Generate Card Validation Data",
|
"Generate Card Validation Data",
|
||||||
"Verify Card Validation Data",
|
"Verify Card Validation Data",
|
||||||
"Generate Payment PIN Data",
|
"Generate Payment PIN Data",
|
||||||
"Translate Payment PIN Data",
|
|
||||||
"Verify Payment PIN Data",
|
"Verify Payment PIN Data",
|
||||||
"Build PIN Block",
|
"Build PIN Block",
|
||||||
"Parse PIN Block",
|
"Parse PIN Block",
|
||||||
|
|||||||
@ -1,53 +0,0 @@
|
|||||||
/**
|
|
||||||
* @license Apache-2.0
|
|
||||||
* @author Jacob Marks [https://jacobmarks.com]
|
|
||||||
*/
|
|
||||||
|
|
||||||
import Operation from "../Operation.mjs";
|
|
||||||
import TranslatePINBlock from "./TranslatePINBlock.mjs";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Translate payment PIN data operation.
|
|
||||||
*/
|
|
||||||
class TranslatePaymentPINData extends Operation {
|
|
||||||
/**
|
|
||||||
* TranslatePaymentPINData constructor.
|
|
||||||
*/
|
|
||||||
constructor() {
|
|
||||||
super();
|
|
||||||
|
|
||||||
this.name = "Translate Payment PIN Data";
|
|
||||||
this.module = "Payment";
|
|
||||||
this.description = "Paste a clear PIN block into the input field as hex and translate it between supported clear ISO 9564 formats.<br><br><b>Input:</b> clear PIN block hex.<br><b>Arguments:</b> choose source and target formats, provide PAN values when required, and optionally randomize target filler digits.<br><br><b>Important:</b> PIN translation must not change the cardholder PAN. Translating a PIN block from one PAN to a different PAN is prohibited by PCI PIN security requirements. Always supply the same PAN for both source and target when the formats require it.";
|
|
||||||
this.inlineHelp = "<strong>Input:</strong> source clear PIN block hex.<br><strong>Args:</strong> define source and target format plus PAN context.";
|
|
||||||
this.testDataSamples = [
|
|
||||||
{
|
|
||||||
name: "Format 0 to 1 sample",
|
|
||||||
input: "041215FEDCBA9876",
|
|
||||||
args: ["ISO Format 0", "5432101234567890", "ISO Format 1", "", false]
|
|
||||||
}
|
|
||||||
];
|
|
||||||
this.infoURL = "https://wikipedia.org/wiki/ISO_9564";
|
|
||||||
this.inputType = "string";
|
|
||||||
this.outputType = "string";
|
|
||||||
this.args = [
|
|
||||||
{ name: "Source format", type: "option", value: ["ISO Format 0", "ISO Format 1", "ISO Format 3"], comment: "How to decode the input PIN block." },
|
|
||||||
{ name: "Source PAN", type: "string", value: "", comment: "Required for source formats 0 and 3." },
|
|
||||||
{ name: "Target format", type: "option", value: ["ISO Format 0", "ISO Format 1", "ISO Format 3"], defaultIndex: 1, comment: "Target clear PIN-block format." },
|
|
||||||
{ name: "Target PAN", type: "string", value: "", comment: "Required for target formats 0 and 3. Must match the source PAN — translating a PIN block to a different PAN is prohibited by PCI PIN security requirements." },
|
|
||||||
{ name: "Randomize target fill digits", type: "boolean", value: false, comment: "Affects only target formats 1 and 3." },
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param {string} input
|
|
||||||
* @param {Object[]} args
|
|
||||||
* @returns {string}
|
|
||||||
*/
|
|
||||||
run(input, args) {
|
|
||||||
const translator = new TranslatePINBlock();
|
|
||||||
return translator.run(input, args);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export default TranslatePaymentPINData;
|
|
||||||
@ -696,31 +696,6 @@ TestRegister.addTests([
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
name: "Translate Payment PIN Data: ISO Format 0 to ISO Format 1",
|
|
||||||
input: "041215FEDCBA9876",
|
|
||||||
expectedOutput: JSON.stringify({
|
|
||||||
source: {
|
|
||||||
format: "ISO Format 0",
|
|
||||||
pin: "1234",
|
|
||||||
pinLength: 4,
|
|
||||||
pinFieldHex: "041234FFFFFFFFFF",
|
|
||||||
panFieldHex: "0000210123456789",
|
|
||||||
blockHex: "041215FEDCBA9876",
|
|
||||||
fillDigitsHex: "FFFFFFFFFF"
|
|
||||||
},
|
|
||||||
target: {
|
|
||||||
format: "ISO Format 1",
|
|
||||||
blockHex: "141234FFFFFFFFFF"
|
|
||||||
}
|
|
||||||
}, null, 4),
|
|
||||||
recipeConfig: [
|
|
||||||
{
|
|
||||||
op: "Translate Payment PIN Data",
|
|
||||||
args: ["ISO Format 0", "5432101234567890", "ISO Format 1", "", false]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
name: "Generate IBM 3624 PIN Offset: known sample",
|
name: "Generate IBM 3624 PIN Offset: known sample",
|
||||||
input: "1234",
|
input: "1234",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user