Skip to content

Commit e00abb4

Browse files
authored
Merge pull request #2499 from OWASP/quicchallenge63fixes
fixes to challenge63
2 parents 81d9e73 + 38ae679 commit e00abb4

3 files changed

Lines changed: 7 additions & 33 deletions

File tree

src/main/java/org/owasp/wrongsecrets/challenges/docker/challenge63/Challenge63.java renamed to src/main/java/org/owasp/wrongsecrets/challenges/docker/Challenge63.java

Lines changed: 5 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.owasp.wrongsecrets.challenges.docker.challenge63;
1+
package org.owasp.wrongsecrets.challenges.docker;
22

33
import static org.owasp.wrongsecrets.Challenges.ErrorResponses.DECRYPTION_ERROR;
44

@@ -9,9 +9,7 @@
99
import javax.crypto.spec.IvParameterSpec;
1010
import javax.crypto.spec.SecretKeySpec;
1111
import lombok.extern.slf4j.Slf4j;
12-
import com.google.common.base.Strings;
13-
import org.owasp.wrongsecrets.challenges.Challenge;
14-
import org.owasp.wrongsecrets.challenges.Spoiler;
12+
import org.owasp.wrongsecrets.challenges.FixedAnswerChallenge;
1513
import org.springframework.stereotype.Component;
1614

1715
/**
@@ -21,38 +19,18 @@
2119
*/
2220
@SuppressWarnings("java:S5542")
2321
@SuppressFBWarnings(
24-
value = {"CIPHER_INTEGRITY", "PADDING_ORACLE"},
22+
value = {"CIPHER_INTEGRITY", "PADDING_ORACLE"},
2523
justification = "Challenge intentionally demonstrates hardcoded key/IV and CBC weaknesses")
2624
@Slf4j
2725
@Component
28-
public class Challenge63 implements Challenge {
26+
public class Challenge63 extends FixedAnswerChallenge {
2927

3028
private static final String HARDCODED_KEY = "SuperSecretKey12";
3129
private static final String HARDCODED_IV = "InitVector123456";
3230
private static final String CIPHERTEXT = "TDPwOvcLsbCWV5erlk6OHFnlFoXNtdQOt2JQeq+i4Ho=";
33-
private String result;
34-
35-
public Challenge63() {
36-
// explicit constructor required
37-
}
3831

3932
@Override
40-
public Spoiler spoiler() {
41-
if (Strings.isNullOrEmpty(result)) {
42-
result = getAnswer();
43-
}
44-
return new Spoiler(result);
45-
}
46-
47-
@Override
48-
public boolean answerCorrect(String answer) {
49-
if (Strings.isNullOrEmpty(result)) {
50-
result = getAnswer();
51-
}
52-
return result.equals(answer);
53-
}
54-
55-
private String getAnswer() {
33+
public String getAnswer() {
5634
try {
5735
byte[] keyBytes = HARDCODED_KEY.getBytes(StandardCharsets.UTF_8);
5836
byte[] ivBytes = HARDCODED_IV.getBytes(StandardCharsets.UTF_8);

src/main/resources/explanations/challenge63.adoc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,3 @@ echo "TDPwOvcLsbCWV5erlk6OHFnlFoXNtdQOt2JQeq+i4Ho=" | openssl enc -d -aes-128-cb
1717
-iv $(echo -n "InitVector123456" | xxd -p) \
1818
-base64
1919
----
20-
Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
11
package org.owasp.wrongsecrets.challenges.docker;
22

3-
import static org.owasp.wrongsecrets.Challenges.ErrorResponses.DECRYPTION_ERROR;
4-
import static org.junit.jupiter.api.Assertions.assertEquals;
53
import static org.junit.jupiter.api.Assertions.assertFalse;
64
import static org.junit.jupiter.api.Assertions.assertTrue;
75

86
import org.junit.jupiter.api.Test;
9-
import org.owasp.wrongsecrets.challenges.docker.challenge63.Challenge63;
7+
import org.owasp.wrongsecrets.Challenges.ErrorResponses;
108

119
class Challenge63Test {
1210

1311
@Test
1412
void testAnswerIsCorrect() {
15-
Challenege63 challenge = new Challenge63();
13+
Challenge63 challenge = new Challenge63();
1614
assertTrue(challenge.answerCorrect(challenge.getAnswer()));
1715
assertFalse(challenge.answerCorrect(ErrorResponses.DECRYPTION_ERROR));
1816
}
@@ -22,5 +20,4 @@ void testWrongAnswerIsRejected() {
2220
Challenge63 challenge = new Challenge63();
2321
assertFalse(challenge.answerCorrect("wronganswer"));
2422
}
25-
2623
}

0 commit comments

Comments
 (0)