The correct answer is A. Replace the custom code with a vetted cryptographic library. Why this is the FIRST action: - The "Don't Roll Your Own Crypto" Rule: Implementing custom encryption algorithms or protocols is one of the most critical security flaws in software engineering. Even if code passes unit tests (which only check if the code functions as the developer intended), it does not mean it is mathematically secure against sophisticated cryptographic attacks. - Immediate Risk Mitigation: A fintech payment service handles highly sensitive data (like PCI-DSS regulated data). Utilizing a proven, industry-standard, peer-reviewed cryptographic library (such as AES via OpenSSL, NaCl, or Tink) immediately eliminates the massive risk of an engineered exploit. - Three-Week Window: Replacing the custom mechanism with a standard library is a concrete, actionable step that can often be integrated rapidly using well-documented APIs, making it a priority before any further testing or policy-setting. Why the other options are incorrect: - B is incorrect: While establishing an organizational cryptographic standard is important, doing so and then assessing custom code against it takes too long and still leaves dangerous, unvetted custom code in place for launch. - C is incorrect: Commissioning a penetration test on custom cryptography is inefficient. Penetration tests find implementation flaws but rarely uncover deep, structural cryptographic vulnerabilities unless explicitly scoped for a cryptanalysis review (which takes significant time and money). - D is incorrect: Approving the launch with custom crypto accepts an unacceptable level of risk for a financial payment service, violating core security and compliance (PCI-DSS) tenets.