94 lines
5.5 KiB
Java
94 lines
5.5 KiB
Java
// SPDX-FileCopyrightText: 2022 Paul Schaub <vanitasvitae@fsfe.org>
|
|
//
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package pgp.vks.client.v1.dto;
|
|
|
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import org.bouncycastle.util.encoders.Base64;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
|
|
public class UploadRequestDtoTest {
|
|
|
|
private static final String TEST_CERT_ARMORED = "-----BEGIN PGP PUBLIC KEY BLOCK-----\n" +
|
|
"Comment: 9DF2 C3FE 6F69 A3EE DBD5 FB81 69E8 A788 A36E 7BFD\n" +
|
|
"Comment: Test\n" +
|
|
"\n" +
|
|
"xjMEYkyuqxYJKwYBBAHaRw8BAQdAKayCvDEF4ZBcUJ9NPZlrG2jYOrNHDfYqOHpq\n" +
|
|
"D+3AkK7CwBEEHxYKAIMFgmJMrqsFiQWkj70DCwkHCRBp6KeIo257/UcUAAAAAAAe\n" +
|
|
"ACBzYWx0QG5vdGF0aW9ucy5zZXF1b2lhLXBncC5vcmeCqtr0bdgGRbTWiCD+lFXm\n" +
|
|
"cyAF5bE3vAgLRHfSSjXcDgMVCggCmwECHgEWIQSd8sP+b2mj7tvV+4Fp6KeIo257\n" +
|
|
"/QAA5pYA/1LKPHcYBTFAIQEJo7cN6ZUJVupGCPI5g2F2qBJbk5OTAQCmiYScX22U\n" +
|
|
"VuoOq/QIgMXhlVMb/oFs7ttWiSbTWHQMAM0EVGVzdMLAFAQTFgoAhgWCYkyuqwWJ\n" +
|
|
"BaSPvQMLCQcJEGnop4ijbnv9RxQAAAAAAB4AIHNhbHRAbm90YXRpb25zLnNlcXVv\n" +
|
|
"aWEtcGdwLm9yZ/H8CTxR91Y1HOYAw910GaXZt7sOeypX5drWVoeA0VBHAxUKCAKZ\n" +
|
|
"AQKbAQIeARYhBJ3yw/5vaaPu29X7gWnop4ijbnv9AACN8QD8C747OJoLZpjTSiGc\n" +
|
|
"N3GlJbaWmdGGaFOMJktKIKgXdd8A/0gAKE1gn12Jo0rl9sHpRMqKPNG1QGNHJ7X/\n" +
|
|
"H7PZE/kLzjMEYkyuqxYJKwYBBAHaRw8BAQdAJy+BAzLwsFL9T+SwbyQxZhatOZZ7\n" +
|
|
"/xXlYJWKUu2M+UDCwMUEGBYKATcFgmJMrqsFiQWkj70JEGnop4ijbnv9RxQAAAAA\n" +
|
|
"AB4AIHNhbHRAbm90YXRpb25zLnNlcXVvaWEtcGdwLm9yZ9rmaNAa/me4nEhPdKRG\n" +
|
|
"MUSXjv1R1ZGnlAoEtR/2NdU7ApsCvqAEGRYKAG8FgmJMrqsJEPYiaYJrDVrZRxQA\n" +
|
|
"AAAAAB4AIHNhbHRAbm90YXRpb25zLnNlcXVvaWEtcGdwLm9yZws3xh5RCajUNu0M\n" +
|
|
"re0wS0Xh+N6IxLYoGrlGjxrRBw6hFiEEAj9WeADbcBGWuGqt9iJpgmsNWtkAAFhf\n" +
|
|
"AQD7Ouv336RMsPgE3JlKx9zGPZcU9HVib70Q2fXxSVR7RQD+O9PEF7MqsIZXiTFG\n" +
|
|
"vkwLe97LoCBBw6LhO8YlDiIZAwwWIQSd8sP+b2mj7tvV+4Fp6KeIo257/QAAdekA\n" +
|
|
"/jp1Nc5kihBPK/vsQSJkHtUeeYPZQz9wxeFgKjEVQiBVAP9lwdJzgC4FNdz0rpp6\n" +
|
|
"xCG38GI2o97S1cr+ot3lkaZpBc44BGJMrqsSCisGAQQBl1UBBQEBB0D8iZDZOC0M\n" +
|
|
"MkZHO7UPpqhCaW642O00LkrToWaKbaUoRAMBCAnCwAYEGBYKAHgFgmJMrqsFiQWk\n" +
|
|
"j70JEGnop4ijbnv9RxQAAAAAAB4AIHNhbHRAbm90YXRpb25zLnNlcXVvaWEtcGdw\n" +
|
|
"Lm9yZ8Jbc6jIIwGN+Pb7UYyTUCzjBvypv9S6ewlfyYYIvbIpApsMFiEEnfLD/m9p\n" +
|
|
"o+7b1fuBaeiniKNue/0AAGQlAQCULqkfbB5T/62qn6o7U4BrmmC90gGksSdpyiur\n" +
|
|
"c9OuIQEAgCeZNcTY8ocGWjsW+6h4A4a1UcmXpK9aqkHd1MNXxQ8=\n" +
|
|
"=stBT\n" +
|
|
"-----END PGP PUBLIC KEY BLOCK-----\n";
|
|
private static final String TEST_CERT_BASE64 = "xjMEYkyuqxYJKwYBBAHaRw8BAQdAKayCvDEF4ZBcUJ9NPZlrG2jYOrNHDfYqOHpqD+3AkK7CwBEE" +
|
|
"HxYKAIMFgmJMrqsFiQWkj70DCwkHCRBp6KeIo257/UcUAAAAAAAeACBzYWx0QG5vdGF0aW9ucy5z" +
|
|
"ZXF1b2lhLXBncC5vcmeCqtr0bdgGRbTWiCD+lFXmcyAF5bE3vAgLRHfSSjXcDgMVCggCmwECHgEW" +
|
|
"IQSd8sP+b2mj7tvV+4Fp6KeIo257/QAA5pYA/1LKPHcYBTFAIQEJo7cN6ZUJVupGCPI5g2F2qBJb" +
|
|
"k5OTAQCmiYScX22UVuoOq/QIgMXhlVMb/oFs7ttWiSbTWHQMAM0EVGVzdMLAFAQTFgoAhgWCYkyu" +
|
|
"qwWJBaSPvQMLCQcJEGnop4ijbnv9RxQAAAAAAB4AIHNhbHRAbm90YXRpb25zLnNlcXVvaWEtcGdw" +
|
|
"Lm9yZ/H8CTxR91Y1HOYAw910GaXZt7sOeypX5drWVoeA0VBHAxUKCAKZAQKbAQIeARYhBJ3yw/5v" +
|
|
"aaPu29X7gWnop4ijbnv9AACN8QD8C747OJoLZpjTSiGcN3GlJbaWmdGGaFOMJktKIKgXdd8A/0gA" +
|
|
"KE1gn12Jo0rl9sHpRMqKPNG1QGNHJ7X/H7PZE/kLzjMEYkyuqxYJKwYBBAHaRw8BAQdAJy+BAzLw" +
|
|
"sFL9T+SwbyQxZhatOZZ7/xXlYJWKUu2M+UDCwMUEGBYKATcFgmJMrqsFiQWkj70JEGnop4ijbnv9" +
|
|
"RxQAAAAAAB4AIHNhbHRAbm90YXRpb25zLnNlcXVvaWEtcGdwLm9yZ9rmaNAa/me4nEhPdKRGMUSX" +
|
|
"jv1R1ZGnlAoEtR/2NdU7ApsCvqAEGRYKAG8FgmJMrqsJEPYiaYJrDVrZRxQAAAAAAB4AIHNhbHRA" +
|
|
"bm90YXRpb25zLnNlcXVvaWEtcGdwLm9yZws3xh5RCajUNu0Mre0wS0Xh+N6IxLYoGrlGjxrRBw6h" +
|
|
"FiEEAj9WeADbcBGWuGqt9iJpgmsNWtkAAFhfAQD7Ouv336RMsPgE3JlKx9zGPZcU9HVib70Q2fXx" +
|
|
"SVR7RQD+O9PEF7MqsIZXiTFGvkwLe97LoCBBw6LhO8YlDiIZAwwWIQSd8sP+b2mj7tvV+4Fp6KeI" +
|
|
"o257/QAAdekA/jp1Nc5kihBPK/vsQSJkHtUeeYPZQz9wxeFgKjEVQiBVAP9lwdJzgC4FNdz0rpp6" +
|
|
"xCG38GI2o97S1cr+ot3lkaZpBc44BGJMrqsSCisGAQQBl1UBBQEBB0D8iZDZOC0MMkZHO7UPpqhC" +
|
|
"aW642O00LkrToWaKbaUoRAMBCAnCwAYEGBYKAHgFgmJMrqsFiQWkj70JEGnop4ijbnv9RxQAAAAA" +
|
|
"AB4AIHNhbHRAbm90YXRpb25zLnNlcXVvaWEtcGdwLm9yZ8Jbc6jIIwGN+Pb7UYyTUCzjBvypv9S6" +
|
|
"ewlfyYYIvbIpApsMFiEEnfLD/m9po+7b1fuBaeiniKNue/0AAGQlAQCULqkfbB5T/62qn6o7U4Br" +
|
|
"mmC90gGksSdpyiurc9OuIQEAgCeZNcTY8ocGWjsW+6h4A4a1UcmXpK9aqkHd1MNXxQ8=";
|
|
|
|
private static final ObjectMapper json = new ObjectMapper();
|
|
|
|
@Test
|
|
public void testSerializeDeserializeArmoredCert() throws JsonProcessingException {
|
|
UploadRequestDto request = new UploadRequestDto(TEST_CERT_ARMORED);
|
|
|
|
String val = json.writeValueAsString(request);
|
|
request = json.readValue(val, UploadRequestDto.class);
|
|
|
|
assertEquals(TEST_CERT_ARMORED, request.getKeyText());
|
|
}
|
|
|
|
@Test
|
|
public void testSerializeDeserializeBase64() throws JsonProcessingException {
|
|
// raw bytes
|
|
byte[] rawCert = Base64.decode(TEST_CERT_BASE64);
|
|
|
|
UploadRequestDto request = UploadRequestDto.fromBytes(rawCert);
|
|
|
|
String val = json.writeValueAsString(request);
|
|
request = json.readValue(val, UploadRequestDto.class);
|
|
|
|
assertEquals(TEST_CERT_BASE64, request.getKeyText());
|
|
}
|
|
}
|