|
| 1 | +/** |
| 2 | + * TLS-Attacker - A Modular Penetration Testing Framework for TLS |
| 3 | + * |
| 4 | + * Copyright 2014-2017 Ruhr University Bochum / Hackmanit GmbH |
| 5 | + * |
| 6 | + * Licensed under Apache License 2.0 |
| 7 | + * http://www.apache.org/licenses/LICENSE-2.0 |
| 8 | + */ |
| 9 | +/* |
| 10 | + */ |
| 11 | +package de.rub.nds.tlsattacker.attacks.ec; |
| 12 | + |
| 13 | +import de.rub.nds.tlsattacker.core.constants.NamedGroup; |
| 14 | +import java.math.BigInteger; |
| 15 | + |
| 16 | +/** |
| 17 | + * |
| 18 | + */ |
| 19 | +public enum InvalidCurvePoint { |
| 20 | + |
| 21 | + SECP160K1(new BigInteger("6F6118AE7199611C0B4F95CFE3B7DEDA68301E69", 16), new BigInteger( |
| 22 | + "F6F9D0E04364C716C25263D7E44CA6C571D22597", 16), new BigInteger("5"), NamedGroup.SECP160K1), |
| 23 | + SECP160R1(new BigInteger("D465C0476AE02C499B0561B9C752C5CFEE8501ED", 16), new BigInteger( |
| 24 | + "5B6394C2C94D9214417E722792D0C07617CC31A6", 16), new BigInteger("5"), NamedGroup.SECP160R1), |
| 25 | + SECP160R2(new BigInteger("2790AABFE83C792584D45D5259ECCA28843D56AA", 16), new BigInteger( |
| 26 | + "5DE5B6B1EC7BDA3940ABA6AD9AE01008040D5949", 16), new BigInteger("5"), NamedGroup.SECP160R2), |
| 27 | + SECP192K1(new BigInteger("7E89D82546F6EDC79CB91F2646E8D7E7AB3FC2F971F1713C", 16), new BigInteger( |
| 28 | + "8A62DA9766C50A90A776C599C421632B46CA9878AB55AF19", 16), new BigInteger("7"), NamedGroup.SECP192K1), |
| 29 | + SECP192R1(new BigInteger("F6DA5E72B35D837EDCDD6E8D211BDBB6565B9708D0447400", 16), new BigInteger( |
| 30 | + "ED15E29256077E3D25C26753FEE705C02FFC0DC8EFDA443A", 16), new BigInteger("5"), NamedGroup.SECP192R1), |
| 31 | + SECP224K1(new BigInteger("54510A6A85EF6144CA057E159DD83C240E3A69B06EE2CAC06BD25AC7", 16), new BigInteger( |
| 32 | + "D2799F20E14C33AB704203F75EBDB38471919531970090DE8D12BC95", 16), new BigInteger("7"), NamedGroup.SECP224K1), |
| 33 | + SECP224R1(new BigInteger("A02F6D2FEBD6C53F11737C43EDDAF9A5026A21245DACA9342CFF7247", 16), new BigInteger( |
| 34 | + "3B0781466C19DCCCAD13A2591A4DFAB7DADF210E9A150CE0C00137D9", 16), new BigInteger("5"), NamedGroup.SECP224R1), |
| 35 | + SECP256K1( |
| 36 | + new BigInteger("5748979A06D28004D165F01FCA69C80DECAFB0119BA2A7C4C7F84C7AF2DCA311", 16), |
| 37 | + new BigInteger("D9625DF3DC92015DEB22AC7242ABEBE512B195E973BA657203F1BDEE8662B45A", 16), |
| 38 | + new BigInteger("7"), |
| 39 | + NamedGroup.SECP256K1), |
| 40 | + SECP256R1( |
| 41 | + new BigInteger("21D2EFDDCFDF5C96268A16A8D5B8CB49EAD2DDE206259FE98686188A30CF0339", 16), |
| 42 | + new BigInteger("D440D09110D30D6CC3CDBBC38284109DB3ACA31F3C6717E29F1CE9D4088D4B1C", 16), |
| 43 | + new BigInteger("5"), |
| 44 | + NamedGroup.SECP256R1), |
| 45 | + SECP384R1( |
| 46 | + new BigInteger( |
| 47 | + "B68083A3FE4F9E46B78D7EDA7DD98FBB712EF7C9899F728D9633A3688B6DE446366668EA1E6CF80996B046719DAD63FF", |
| 48 | + 16), new BigInteger( |
| 49 | + "FC00B0AFDC553D8A01336C78527231BF2D7C8BAD862225A07761BD0975E968E72204EBF877D9F67A22883512884BA870", |
| 50 | + 16), new BigInteger("5"), NamedGroup.SECP384R1), |
| 51 | + SECP521R1( |
| 52 | + new BigInteger( |
| 53 | + "E04ED20B3289E72B4916D3C9095785488D309571BA7E39E0033DB72B471976133EE387F812A0DC2DE796A2C65ACCC220C2E11805FCADAF7F2D29826DF83C0B487F", |
| 54 | + 16), |
| 55 | + new BigInteger( |
| 56 | + "7555B523F2A83D26CF76E8BF6F3BD55A6BD7307D617D10F7228ED84920C2832F5AB78472FB1E54E572703E70FB84F4F956F2AA2027F0156DDE1CCE729BA135B02C", |
| 57 | + 16), |
| 58 | + new BigInteger("5"), |
| 59 | + NamedGroup.SECP521R1), |
| 60 | + BRAINPOOLP256R1( |
| 61 | + new BigInteger("475638180469F3128FCEACFF3D1B2A7052021FABE168456E724C82CE647A0B38", 16), |
| 62 | + new BigInteger("24392E4B249529608415683ABF8DF8017A577A447B791233BFF1F8D50003C3DA", 16), |
| 63 | + new BigInteger("5"), |
| 64 | + NamedGroup.BRAINPOOLP256R1), |
| 65 | + BRAINPOOLP384R1( |
| 66 | + new BigInteger( |
| 67 | + "7A15487AF637530E2BECC85585C2E36C21447AB4C786F08EF75A1EFBE7785016855AB3B6EFBB9F80517C23C1438A3F18", |
| 68 | + 16), new BigInteger( |
| 69 | + "1C8AC00FBE2E3CD0994704AC81F8210A283F34D4F351F19525876A14719B8DDAC45315782BB7BBEAB47B0B6061788A9D", |
| 70 | + 16), new BigInteger("5"), NamedGroup.BRAINPOOLP384R1), |
| 71 | + BRAINPOOLP512R1( |
| 72 | + new BigInteger( |
| 73 | + "3A52E57C2D5BE39BB3F97C4CF90D81BEE7123CACBC6B7FF6EB03A164CCF0253FDF1AACF7C4AC6B820E6D48145D7854C67DEF4CADAB555D4609E279956450A610", |
| 74 | + 16), |
| 75 | + new BigInteger( |
| 76 | + "1C41E102D5E9EF09CA132E808D87D1C0944951572E82C4F9FECACC80714C0C926E5DA09BD775F5C7E2BE54878EE2AC1A091A8653AE9961789202FD2BA21E7999", |
| 77 | + 16), |
| 78 | + new BigInteger("5"), |
| 79 | + NamedGroup.BRAINPOOLP512R1); |
| 80 | + |
| 81 | + private BigInteger publicPointBaseX; |
| 82 | + private BigInteger publicPointBaseY; |
| 83 | + private final NamedGroup namedGroup; |
| 84 | + private BigInteger order; |
| 85 | + |
| 86 | + private InvalidCurvePoint(BigInteger publicPointBaseX, BigInteger publicPointBaseY, BigInteger order, |
| 87 | + NamedGroup namedGroup) { |
| 88 | + this.publicPointBaseX = publicPointBaseX; |
| 89 | + this.publicPointBaseY = publicPointBaseY; |
| 90 | + this.order = order; |
| 91 | + this.namedGroup = namedGroup; |
| 92 | + } |
| 93 | + |
| 94 | + public static InvalidCurvePoint fromNamedGroup(NamedGroup group) { |
| 95 | + for (InvalidCurvePoint point : values()) { |
| 96 | + if (point.getNamedGroup() == group) { |
| 97 | + return point; |
| 98 | + } |
| 99 | + } |
| 100 | + return null; |
| 101 | + } |
| 102 | + |
| 103 | + public NamedGroup getNamedGroup() { |
| 104 | + return namedGroup; |
| 105 | + } |
| 106 | + |
| 107 | + public BigInteger getOrder() { |
| 108 | + return order; |
| 109 | + } |
| 110 | + |
| 111 | + /** |
| 112 | + * @return the publicPointBaseX |
| 113 | + */ |
| 114 | + public BigInteger getPublicPointBaseX() { |
| 115 | + return publicPointBaseX; |
| 116 | + } |
| 117 | + |
| 118 | + /** |
| 119 | + * @param publicPointBaseX |
| 120 | + * the publicPointBaseX to set |
| 121 | + */ |
| 122 | + public void setPublicPointBaseX(BigInteger publicPointBaseX) { |
| 123 | + this.publicPointBaseX = publicPointBaseX; |
| 124 | + } |
| 125 | + |
| 126 | + /** |
| 127 | + * @return the publicPointBaseY |
| 128 | + */ |
| 129 | + public BigInteger getPublicPointBaseY() { |
| 130 | + return publicPointBaseY; |
| 131 | + } |
| 132 | + |
| 133 | + /** |
| 134 | + * @param publicPointBaseY |
| 135 | + * the publicPointBaseY to set |
| 136 | + */ |
| 137 | + public void setPublicPointBaseY(BigInteger publicPointBaseY) { |
| 138 | + this.publicPointBaseY = publicPointBaseY; |
| 139 | + } |
| 140 | + |
| 141 | + /** |
| 142 | + * @param order |
| 143 | + * the order to set |
| 144 | + */ |
| 145 | + public void setOrder(BigInteger order) { |
| 146 | + this.order = order; |
| 147 | + } |
| 148 | + |
| 149 | +} |
0 commit comments