Update currently-active ICANN-provided SMD test file (#1753)

The test files they provided before have expired, and they only provide
one valid currently-active test file now, so only test that one.

The test files are located at https://newgtlds.icann.org/en/about/trademark-clearinghouse/registries-registrars
This commit is contained in:
gbrodman 2022-08-22 13:59:38 -04:00 committed by GitHub
parent 7b7c1e1ddc
commit 280b56bd51
2 changed files with 121 additions and 21 deletions

View file

@ -14,20 +14,16 @@
package google.registry.tmch; package google.registry.tmch;
import static google.registry.testing.TestDataHelper.listFiles; import static google.registry.testing.TestDataHelper.loadFile;
import static org.joda.time.DateTimeZone.UTC; import static org.joda.time.DateTimeZone.UTC;
import com.google.common.flogger.FluentLogger;
import google.registry.config.RegistryConfig.ConfigModule.TmchCaMode; import google.registry.config.RegistryConfig.ConfigModule.TmchCaMode;
import google.registry.flows.EppException; import google.registry.flows.EppException;
import google.registry.flows.domain.DomainFlowTmchUtils; import google.registry.flows.domain.DomainFlowTmchUtils;
import google.registry.model.smd.EncodedSignedMark; import google.registry.model.smd.EncodedSignedMark;
import google.registry.testing.AppEngineExtension; import google.registry.testing.AppEngineExtension;
import google.registry.util.ResourceUtils;
import google.registry.util.SystemClock; import google.registry.util.SystemClock;
import java.nio.file.Path;
import org.joda.time.DateTime; import org.joda.time.DateTime;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension; import org.junit.jupiter.api.extension.RegisterExtension;
@ -37,9 +33,17 @@ class TmchTestDataExpirationTest {
@RegisterExtension @RegisterExtension
public final AppEngineExtension appEngine = AppEngineExtension.builder().withCloudSql().build(); public final AppEngineExtension appEngine = AppEngineExtension.builder().withCloudSql().build();
private static final FluentLogger logger = FluentLogger.forEnclosingClass(); /**
* Verifies the currently-active signed mark file provided by ICANN.
@Disabled("TODO(b/243130376): update the data files when ICANN provides them") *
* <p>The rest of the tests use injected clocks so that we don't have to keep updating those SMD
* files and so that we can test various types of files, but this test will vail when the validity
* of the ICANN-provided file expires.
*
* <p>When this fails, check
* <a>https://newgtlds.icann.org/en/about/trademark-clearinghouse/registries-registrars</a> for a
* new updated SMD file.
*/
@Test @Test
void testActiveSignedMarkFiles_areValidAndNotExpired() throws Exception { void testActiveSignedMarkFiles_areValidAndNotExpired() throws Exception {
DomainFlowTmchUtils tmchUtils = DomainFlowTmchUtils tmchUtils =
@ -47,19 +51,13 @@ class TmchTestDataExpirationTest {
new TmchXmlSignature( new TmchXmlSignature(
new TmchCertificateAuthority(TmchCaMode.PILOT, new SystemClock()))); new TmchCertificateAuthority(TmchCaMode.PILOT, new SystemClock())));
for (Path path : listFiles(TmchTestDataExpirationTest.class, "active/")) { String filePath = "active/smd-active-21aug20-en.smd";
if (path.toString().endsWith(".smd")) { String tmchData = loadFile(TmchTestDataExpirationTest.class, filePath);
logger.atInfo().log("Verifying: %s", path);
String tmchData = ResourceUtils.readResourceUtf8(path.toUri().toURL());
EncodedSignedMark smd = TmchData.readEncodedSignedMark(tmchData); EncodedSignedMark smd = TmchData.readEncodedSignedMark(tmchData);
try { try {
tmchUtils.verifyEncodedSignedMark(smd, DateTime.now(UTC)); tmchUtils.verifyEncodedSignedMark(smd, DateTime.now(UTC));
} catch (EppException e) { } catch (EppException e) {
throw new AssertionError("Error verifying signed mark " + path, e); throw new AssertionError("Error verifying signed mark " + filePath, e);
}
} else {
logger.atInfo().log("Ignored: %s", path);
}
} }
} }
} }

View file

@ -0,0 +1,102 @@
Marks: Test &amp; Validate
smdID: 000000851598037875889-65535
U-labels: test---validate, test--validate, test-and-validate, test-andvalidate, test-validate, testand-validate, testandvalidate, testvalidate
notBefore: 2020-08-21T19:24:35.889Z
notAfter: 2023-08-18T14:57:36.681Z
-----BEGIN ENCODED SMD-----
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c21kOnNpZ25lZE1hcmsgeG1s
bnM6c21kPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOnNpZ25lZE1hcmstMS4wIiBpZD0iX2UwMGE3
N2EyLTdjYWItNGNiOS1iYmJjLTg2MmYxZjQ4ODlmMSI+PHNtZDppZD4wMDAwMDA4NTE1OTgwMzc4
NzU4ODktNjU1MzU8L3NtZDppZD48c21kOmlzc3VlckluZm8gaXNzdWVySUQ9IjY1NTM1Ij48c21k
Om9yZz5JQ0FOTiBUTUNIIFRFU1RJTkcgVE1WPC9zbWQ6b3JnPjxzbWQ6ZW1haWw+bm90YXZhaWxh
YmxlQGV4YW1wbGUuY29tPC9zbWQ6ZW1haWw+PHNtZDp1cmw+d3d3LmV4YW1wbGUuY29tPC9zbWQ6
dXJsPjxzbWQ6dm9pY2UgeD0iIj4rMzIuMjAwMDAwMDA8L3NtZDp2b2ljZT48L3NtZDppc3N1ZXJJ
bmZvPjxzbWQ6bm90QmVmb3JlPjIwMjAtMDgtMjFUMTk6MjQ6MzUuODg5Wjwvc21kOm5vdEJlZm9y
ZT48c21kOm5vdEFmdGVyPjIwMjMtMDgtMThUMTQ6NTc6MzYuNjgxWjwvc21kOm5vdEFmdGVyPjxt
YXJrOm1hcmsgeG1sbnM6bWFyaz0idXJuOmlldGY6cGFyYW1zOnhtbDpuczptYXJrLTEuMCI+PG1h
cms6Y291cnQ+PG1hcms6aWQ+MDAwMTM3MTUwMzA2Nzg2ODE1MDMwNjc4NjgtMTwvbWFyazppZD48
bWFyazptYXJrTmFtZT5UZXN0ICZhbXA7IFZhbGlkYXRlPC9tYXJrOm1hcmtOYW1lPjxtYXJrOmhv
bGRlciBlbnRpdGxlbWVudD0ib3duZXIiPjxtYXJrOm5hbWU+VG9ueSBIb2xsYW5kPC9tYXJrOm5h
bWU+PG1hcms6b3JnPkFnIGNvcnBvcmF0aW9uPC9tYXJrOm9yZz48bWFyazphZGRyPjxtYXJrOnN0
cmVldD4xMzA1IEJyaWdodCBBdmVudWU8L21hcms6c3RyZWV0PjxtYXJrOnN0cmVldC8+PG1hcms6
c3RyZWV0Lz48bWFyazpjaXR5PkFyY2FkaWE8L21hcms6Y2l0eT48bWFyazpzcC8+PG1hcms6cGM+
OTAwMjg8L21hcms6cGM+PG1hcms6Y2M+VVM8L21hcms6Y2M+PC9tYXJrOmFkZHI+PC9tYXJrOmhv
bGRlcj48bWFyazpjb250YWN0IHR5cGU9ImFnZW50Ij48bWFyazpuYW1lPlRvbnkgSG9sbGFuZDwv
bWFyazpuYW1lPjxtYXJrOm9yZz5BZyBjb3Jwb3JhdGlvbjwvbWFyazpvcmc+PG1hcms6YWRkcj48
bWFyazpzdHJlZXQ+QnJpZ2h0IEF2ZW51ZSAxMzA1IDwvbWFyazpzdHJlZXQ+PG1hcms6Y2l0eT5B
cmNhZGlhPC9tYXJrOmNpdHk+PG1hcms6c3A+Q0E8L21hcms6c3A+PG1hcms6cGM+OTAwMjg8L21h
cms6cGM+PG1hcms6Y2M+VVM8L21hcms6Y2M+PC9tYXJrOmFkZHI+PG1hcms6dm9pY2U+KzEuMjAy
NTU2MjMwMjwvbWFyazp2b2ljZT48bWFyazpmYXg+KzEuMjAyNTU2MjMwMTwvbWFyazpmYXg+PG1h
cms6ZW1haWw+aW5mb0BhZ2NvcnBvcmF0aW9uLmNvbTwvbWFyazplbWFpbD48L21hcms6Y29udGFj
dD48bWFyazpsYWJlbD50ZXN0LS0tdmFsaWRhdGU8L21hcms6bGFiZWw+PG1hcms6bGFiZWw+dGVz
dC0tdmFsaWRhdGU8L21hcms6bGFiZWw+PG1hcms6bGFiZWw+dGVzdC1hbmQtdmFsaWRhdGU8L21h
cms6bGFiZWw+PG1hcms6bGFiZWw+dGVzdC1hbmR2YWxpZGF0ZTwvbWFyazpsYWJlbD48bWFyazps
YWJlbD50ZXN0LXZhbGlkYXRlPC9tYXJrOmxhYmVsPjxtYXJrOmxhYmVsPnRlc3RhbmQtdmFsaWRh
dGU8L21hcms6bGFiZWw+PG1hcms6bGFiZWw+dGVzdGFuZHZhbGlkYXRlPC9tYXJrOmxhYmVsPjxt
YXJrOmxhYmVsPnRlc3R2YWxpZGF0ZTwvbWFyazpsYWJlbD48bWFyazpnb29kc0FuZFNlcnZpY2Vz
Pmd1aXRhcjwvbWFyazpnb29kc0FuZFNlcnZpY2VzPjxtYXJrOnJlZk51bT4xMjM0PC9tYXJrOnJl
Zk51bT48bWFyazpwcm9EYXRlPjIwMTMtMDEtMDFUMDA6MDA6MDAuMDAwWjwvbWFyazpwcm9EYXRl
PjxtYXJrOmNjPlVTPC9tYXJrOmNjPjxtYXJrOmNvdXJ0TmFtZT5Ib3ZlPC9tYXJrOmNvdXJ0TmFt
ZT48L21hcms6Y291cnQ+PC9tYXJrOm1hcms+PGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0cDov
L3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgSWQ9Il9mZDVlNDkwNC00NjE3LTRhYWItYTZk
ZS1kNzJmZjllZTBlMTEiPjxkczpTaWduZWRJbmZvPjxkczpDYW5vbmljYWxpemF0aW9uTWV0aG9k
IEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PGRz
OlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1s
ZHNpZy1tb3JlI3JzYS1zaGEyNTYiLz48ZHM6UmVmZXJlbmNlIFVSST0iI19lMDBhNzdhMi03Y2Fi
LTRjYjktYmJiYy04NjJmMWY0ODg5ZjEiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxn
b3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25h
dHVyZSIvPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEw
L3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0
aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdlc3RW
YWx1ZT5HeFhDcFpJTlQ3KzNJUmszQjBjYlZTTFBsaFVTUkV0MFppYlcyQWVMSDlBPTwvZHM6RGln
ZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PGRzOlJlZmVyZW5jZSBVUkk9IiNfOTZmM2EyMzUtMDc2
Ny00OTk5LWEwZDQtODM2ZDkxY2MxZjg0Ij48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFs
Z29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9kczpU
cmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8y
MDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+Y2pXUTVtdlRPMzVlK3czczIr
R1B0S1NIQzIxczc4Q1VwWWlCODVqOUdwbz08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNl
PjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWUgSWQ9Il8zNGVkZDBlZS03MzBkLTQz
YTQtYTNiZC0wNzA2ZGRmZWNkMDIiPjBaT2p0eDZWd1NnNlRhYXBTeWpiSitHdk5DSyszWElOWnUy
MVlmWmNHYmZ5WmI2cGk3NCtqYkdaaFY4NzlSdlFPU1hoUmpNTWVHUHMKNDY0dU81WDROL1ZMUith
dlZxWnFTSUxBTk4zSkFKVHlnSHoyUFV0T3VzYm5xdWtRZVI1dGdEckJWT0VPMElWZVpWb1A2UGJM
ekVBZwpzQ1d4THowbXFQeUM1ZXVqZ284SGJlTmJoYXRFL00zNFV6WHJKSVM2YTNma1NTQWdjbnp4
OG1Wd2VhUVlxQXF4Vit0ck9mWHYxYWxqCnBRTlFEWElFQnZ4U2NsMmhic01oZ1dLZmxITmJQVHZL
a0lSQ3JBN3hFVVFyTjlFdDZKdkdKMU1BeW50eEpnLzl0ZjZKcEU1aDJCdHcKdEJNaDRRY2ZmN21G
aUhCQ2RSeEg3d2tIa1ZSTmE2WXFCeE9XQ0E9PTwvZHM6U2lnbmF0dXJlVmFsdWU+PGRzOktleUlu
Zm8gSWQ9Il85NmYzYTIzNS0wNzY3LTQ5OTktYTBkNC04MzZkOTFjYzFmODQiPjxkczpYNTA5RGF0
YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUZYRENDQkVTZ0F3SUJBZ0lJZml1bERhR082NWd3RFFZ
SktvWklodmNOQVFFTEJRQXdmREVMTUFrR0ExVUVCaE1DVlZNeFBEQTYKQmdOVkJBb1RNMGx1ZEdW
eWJtVjBJRU52Y25CdmNtRjBhVzl1SUdadmNpQkJjM05wWjI1bFpDQk9ZVzFsY3lCaGJtUWdUblZ0
WW1WeQpjekV2TUMwR0ExVUVBeE1tU1VOQlRrNGdWSEpoWkdWdFlYSnJJRU5zWldGeWFXNW5hRzkx
YzJVZ1VHbHNiM1FnUTBFd0hoY05NakF3Ck9ERXpNREF3TURBd1doY05Nak13TXpNeE1qTTFPVFU1
V2pDQnlERUxNQWtHQTFVRUJoTUNRa1V4RVRBUEJnTlZCQWdUQ0VKeWRYTnoKWld4ek1SSXdFQVlE
VlFRSEV3bFdhV3gyYjI5eVpHVXhNVEF2QmdOVkJBb01LRVJsYkc5cGRIUmxJRU52Ym5OMWJIUnBi
bWNnSmlCQgpaSFpwYzI5eWVTQkRWa0pCTDFORFVrd3hPREEyQmdOVkJBTVRMMGxEUVU1T0lGUk5R
MGdnUVhWMGFHOXlhWHBsWkNCVWNtRmtaVzFoCmNtc2dVR2xzYjNRZ1ZtRnNhV1JoZEc5eU1TVXdJ
d1lKS29aSWh2Y05BUWtCRmhaaVpYUnRZMmh6YldSQVpHVnNiMmwwZEdVdVkyOXQKTUlJQklqQU5C
Z2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEwNU9XdnFONWJlTG8yL29jSjVOZXNH
dzFqVTF6a3FRdgorME5rTEw4UWx4Wmg5Y015bmYvbmlHVHlTeU94MTk0QlNyb1B2a3drd0xqZTNG
TmhtVitCc1pvN2J5dGpVOUZDU2dkMzhvUjRnaHRRCjVhV2t4VkxyWW51cTlUTWQzYVBwWEswMTJD
Wnd1ZzRsc3VpVkk5Y0lTTkxoK3RoZzZJVWtmQnNVRlRiQ2tvbVdhcjV1UXFoR3JjMWQKazhjUE1o
VUxpUm85bnFRRDM1NjYxcFdlWTk4Z0MrTGEwVkZVOXFDUmpXMzcwK3dZZ25VY2ZMQ3NTYWx5dVZE
STlYUGlHRmtXRkd3TwpyUklQRTY2MjBjTThPRGF3RFFlQTlCcUNVa0ZpUE91RXFGU2VrNExPTU9L
ZFlNNXRSRUd4bHI3anJBQWVDNTRTejFDRlNsUWdIbXlZCncvbUVOd0lEQVFBQm80SUJrekNDQVk4
d0RBWURWUjBUQVFIL0JBSXdBREFkQmdOVkhRNEVGZ1FVTlZkWFQ0SGZNSWIrcWgyU0duV28KTGRK
dFhsZ3dnY1lHQTFVZEl3U0J2akNCdTRBVXc2MCtwdFlSQUVXQVhEcFhTb3B0M0RFTm5uR2hnWUNr
ZmpCOE1Rc3dDUVlEVlFRRwpFd0pWVXpFOE1Eb0dBMVVFQ2hNelNXNTBaWEp1WlhRZ1EyOXljRzl5
WVhScGIyNGdabTl5SUVGemMybG5ibVZrSUU1aGJXVnpJR0Z1ClpDQk9kVzFpWlhKek1TOHdMUVlE
VlFRREV5WkpRMEZPVGlCVWNtRmtaVzFoY21zZ1EyeGxZWEpwYm1kb2IzVnpaU0JRYVd4dmRDQkQK
UVlJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdYSm0wVDAyRm9neEtDZk5oWGt3RGdZRFZSMFBB
UUgvQkFRREFnZUFNRFFHQTFVZApId1F0TUNzd0thQW5vQ1dHSTJoMGRIQTZMeTlqY213dWFXTmhi
bTR1YjNKbkwzUnRZMmhmY0dsc2IzUXVZM0pzTUZFR0ExVWRJQVJLCk1FZ3dFQVlPS3dZQkJBR0N5
UnNCQllNN0RBb3dOQVlJS3dZQkJRVUhBZ0V3S0RBbUJnZ3JCZ0VGQlFjQ0FSWWFhSFIwY0hNNkx5
OWoKWVM1cFkyRnViaTV2Y21jdmNHbHNiM1F3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUYzektx
dTBrUXZwT3RzVXAxMVIzRHlXdHRtagp5T1VsSnkvVTc0Vms3Z2JUVlJqZG85bTJTT2wyOERrVmgz
TlVRSVZSSjk2QWhlTWEvN3hUM0F1UjZRYlJUZkN3ekh5N282R1dIZkg4Cjh4UDNRU1NwZ2wzcUVV
ekRzMG1hRFJNUzNiZEQ3VzlKdWJzYzB5NmZaNm5hVWRxbFFUMXVJSEgvWW5hWXV5azRJSFRRTFRa
NFhlVFMKQjZVR3pha1h0UFFLblZ3dDFCa2FSN281SVFVbXVDSUp0KzZrYjVNVlhhRnNGZDFYbm1t
RGg0dDVlSWRyYnJGZTlMdzBxbXR4M3FhdApZRXFqbTdOcEJnOXp1dUNMN3JDWGF1Y3VMVDZmVHZB
VXhHaTdEdlhQTUE2K2x2dVc5WURBcVAvY3FEYTYvdnBNMStHRnB5VEhMT2UwClY0T01PTy90U25n
PTwvZHM6WDUwOUNlcnRpZmljYXRlPjwvZHM6WDUwOURhdGE+PC9kczpLZXlJbmZvPjwvZHM6U2ln
bmF0dXJlPjwvc21kOnNpZ25lZE1hcms+Cg==
-----END ENCODED SMD-----