1 // Copyright 2024 Google Inc. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 // 15 //////////////////////////////////////////////////////////////////////////////// 16 17 package com.google.crypto.tink.subtle; 18 19 import static org.junit.Assert.assertThrows; 20 import static org.junit.Assume.assumeTrue; 21 22 import com.google.crypto.tink.config.TinkFips; 23 import java.security.GeneralSecurityException; 24 import org.junit.Test; 25 import org.junit.runner.RunWith; 26 import org.junit.runners.JUnit4; 27 28 @RunWith(JUnit4.class) 29 public final class PrfAesCmacFipsTest { 30 31 private static final int KEY_SIZE = 16; 32 33 @Test testFipsCompatibility()34 public void testFipsCompatibility() throws Exception { 35 assumeTrue(TinkFips.useOnlyFips()); 36 37 // In FIPS-mode we expect that creating a PrfAesCmac fails. 38 assertThrows( 39 GeneralSecurityException.class, 40 () -> new PrfAesCmac(Random.randBytes(KEY_SIZE))); 41 } 42 43 } 44