|
| 1 | +package org.bouncycastle.openpgp.api.test; |
| 2 | + |
| 3 | +import org.bouncycastle.openpgp.PGPException; |
| 4 | +import org.bouncycastle.openpgp.api.OpenPGPApi; |
| 5 | +import org.bouncycastle.openpgp.api.OpenPGPKey; |
| 6 | +import org.bouncycastle.openpgp.api.OpenPGPKeyReader; |
| 7 | + |
| 8 | +import java.io.IOException; |
| 9 | + |
| 10 | +public class StrippedOpenPGPKeyTest |
| 11 | + extends APITest |
| 12 | +{ |
| 13 | + |
| 14 | + @Override |
| 15 | + protected void performTestWith(OpenPGPApi api) |
| 16 | + throws PGPException, IOException |
| 17 | + { |
| 18 | + // Adapted test case from https://github.com/bcgit/bc-java/issues/2173 |
| 19 | + // Credit for test vectors to @agrahn |
| 20 | + OpenPGPKeyReader reader = api.readKeyOrCertificate(); |
| 21 | + OpenPGPKey strippedKey = reader.parseKey( |
| 22 | + "-----BEGIN PGP PRIVATE KEY BLOCK-----\n\n" + |
| 23 | + "lDsEaNz9VhYJKwYBBAHaRw8BAQdANvkQp6G9vVPUtxHplmw44lclTAm2vSqREnfi\n" + |
| 24 | + "bsqmDDP/AGUAR05VAbQfQm9iIFVzZXIgPGJvYi51c2VyQGV4YW1wbGUub3JnPoiT\n" + |
| 25 | + "BBMWCgA7FiEE81kLNGDerGMA7okHMcFP0Qqg/SwFAmjc/VYCGwEFCwkIBwICIgIG\n" + |
| 26 | + "FQoJCAsCBBYCAwECHgcCF4AACgkQMcFP0Qqg/Szv3AEA5Q0S6UrHI6YC9IqCV86Z\n" + |
| 27 | + "xF7zegeUJiTGfbIMmp+7qk4BAIJBZyfpsutfdnLBmXMQmPPvdlfNZ0H781sm4vq4\n" + |
| 28 | + "1KkFnIsEaNz9pRIKKwYBBAGXVQEFAQEHQLilfhrcbzI6XI7a+HbOfqNj/9cwZk8s\n" + |
| 29 | + "O4H/4IMhY7ZZAwEIB/4HAwIpPDPOpRpcw//ZZTsMuT5ZRDGnSA+3i34NWnhv50ex\n" + |
| 30 | + "yf51MgrvY+E3NaE9ObFfvEJILF8kub206yaQRbHWPrj7fU1C+DKJ9AbDcXZmzu/U\n" + |
| 31 | + "iHgEGBYKACAWIQTzWQs0YN6sYwDuiQcxwU/RCqD9LAUCaNz9pQIbDAAKCRAxwU/R\n" + |
| 32 | + "CqD9LCNSAP9v7GminBOFV8XkMsL4T+0P0woGjTZxUrYKKVR98NhXswEAhDfkQh0n\n" + |
| 33 | + "IyhOyHwzLuoGJ31M7a1rtB44tcJNtnP6XQQ=\n" + |
| 34 | + "=jquc\n" + |
| 35 | + "-----END PGP PRIVATE KEY BLOCK-----\n"); |
| 36 | + |
| 37 | + OpenPGPKey.OpenPGPSecretKey secKey = strippedKey.getPrimarySecretKey(); |
| 38 | + |
| 39 | + boolean isCorrect = secKey.isPassphraseCorrect(("12345678").toCharArray()); |
| 40 | + isFalse("Expected false when checking passphrase of stripped secret key", isCorrect); |
| 41 | + } |
| 42 | + |
| 43 | + @Override |
| 44 | + public String getName() |
| 45 | + { |
| 46 | + return "StrippedOpenPGPKeyTest"; |
| 47 | + } |
| 48 | + |
| 49 | + public static void main(String[] args) |
| 50 | + { |
| 51 | + runTest(new StrippedOpenPGPKeyTest()); |
| 52 | + } |
| 53 | +} |
0 commit comments