• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2023 Google LLC
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.signature;
18 
19 import static com.google.common.truth.Truth.assertThat;
20 
21 import org.junit.Test;
22 import org.junit.runner.RunWith;
23 import org.junit.runners.JUnit4;
24 
25 @RunWith(JUnit4.class)
26 public final class Ed25519ParametersTest {
27   private static final Ed25519Parameters.Variant NO_PREFIX = Ed25519Parameters.Variant.NO_PREFIX;
28   private static final Ed25519Parameters.Variant TINK = Ed25519Parameters.Variant.TINK;
29   private static final Ed25519Parameters.Variant CRUNCHY = Ed25519Parameters.Variant.CRUNCHY;
30   private static final Ed25519Parameters.Variant LEGACY = Ed25519Parameters.Variant.LEGACY;
31 
32   @Test
buildParametersAndGetProperties_noPrefix()33   public void buildParametersAndGetProperties_noPrefix() throws Exception {
34     Ed25519Parameters parameters = Ed25519Parameters.create();
35     assertThat(parameters.getVariant()).isEqualTo(NO_PREFIX);
36     assertThat(parameters.hasIdRequirement()).isFalse();
37   }
38 
39   @Test
buildParametersAndGetProperties_noPrefix_setVariantExplicitly()40   public void buildParametersAndGetProperties_noPrefix_setVariantExplicitly() throws Exception {
41     Ed25519Parameters parameters = Ed25519Parameters.create(NO_PREFIX);
42     assertThat(parameters.getVariant()).isEqualTo(NO_PREFIX);
43     assertThat(parameters.hasIdRequirement()).isFalse();
44   }
45 
46   @Test
buildParametersAndGetProperties_tink()47   public void buildParametersAndGetProperties_tink() throws Exception {
48     Ed25519Parameters parameters = Ed25519Parameters.create(TINK);
49     assertThat(parameters.getVariant()).isEqualTo(TINK);
50     assertThat(parameters.hasIdRequirement()).isTrue();
51   }
52 
53   @Test
buildParameterAndGetProperties_crunchy()54   public void buildParameterAndGetProperties_crunchy() throws Exception {
55     Ed25519Parameters parameters = Ed25519Parameters.create(CRUNCHY);
56     assertThat(parameters.getVariant()).isEqualTo(CRUNCHY);
57     assertThat(parameters.hasIdRequirement()).isTrue();
58   }
59 
60   @Test
buildParameterAndGetProperties_legacy()61   public void buildParameterAndGetProperties_legacy() throws Exception {
62     Ed25519Parameters parameters = Ed25519Parameters.create(LEGACY);
63     assertThat(parameters.getVariant()).isEqualTo(LEGACY);
64     assertThat(parameters.hasIdRequirement()).isTrue();
65   }
66 
67   @Test
testEqualsAndEqualHashCode_noPrefix()68   public void testEqualsAndEqualHashCode_noPrefix() throws Exception {
69     Ed25519Parameters parametersNoPrefix0 = Ed25519Parameters.create();
70     Ed25519Parameters parametersNoPrefix1 = Ed25519Parameters.create();
71     assertThat(parametersNoPrefix0).isEqualTo(parametersNoPrefix1);
72     assertThat(parametersNoPrefix0.hashCode()).isEqualTo(parametersNoPrefix1.hashCode());
73   }
74 
75   @Test
testEqualsAndEqualHashCode_tink()76   public void testEqualsAndEqualHashCode_tink() throws Exception {
77     Ed25519Parameters parametersTink0 = Ed25519Parameters.create(TINK);
78     Ed25519Parameters parametersTink1 = Ed25519Parameters.create(TINK);
79     assertThat(parametersTink0).isEqualTo(parametersTink1);
80     assertThat(parametersTink0.hashCode()).isEqualTo(parametersTink1.hashCode());
81   }
82 
83   @Test
testEqualsAndEqualHashCode_crunchy()84   public void testEqualsAndEqualHashCode_crunchy() throws Exception {
85     Ed25519Parameters parametersCrunchy0 = Ed25519Parameters.create(CRUNCHY);
86     Ed25519Parameters parametersCrunchy1 = Ed25519Parameters.create(CRUNCHY);
87     assertThat(parametersCrunchy0).isEqualTo(parametersCrunchy1);
88     assertThat(parametersCrunchy0.hashCode()).isEqualTo(parametersCrunchy1.hashCode());
89   }
90 
91   @Test
testEqualsAndEqualHashCode_legacy()92   public void testEqualsAndEqualHashCode_legacy() throws Exception {
93     Ed25519Parameters parametersLegacy0 = Ed25519Parameters.create(LEGACY);
94     Ed25519Parameters parametersLegacy1 = Ed25519Parameters.create(LEGACY);
95     assertThat(parametersLegacy0).isEqualTo(parametersLegacy1);
96     assertThat(parametersLegacy0.hashCode()).isEqualTo(parametersLegacy1.hashCode());
97   }
98 
99   @Test
testNotEqualAndNotEqualHashCode_noPrefix()100   public void testNotEqualAndNotEqualHashCode_noPrefix() throws Exception {
101     Ed25519Parameters parametersNoPrefix = Ed25519Parameters.create();
102 
103     Ed25519Parameters parametersTink = Ed25519Parameters.create(TINK);
104     Ed25519Parameters parametersCrunchy = Ed25519Parameters.create(CRUNCHY);
105     Ed25519Parameters parametersLegacy = Ed25519Parameters.create(LEGACY);
106 
107     assertThat(parametersNoPrefix).isNotEqualTo(parametersTink);
108     assertThat(parametersNoPrefix.hashCode()).isNotEqualTo(parametersTink.hashCode());
109 
110     assertThat(parametersNoPrefix).isNotEqualTo(parametersCrunchy);
111     assertThat(parametersNoPrefix.hashCode()).isNotEqualTo(parametersCrunchy.hashCode());
112 
113     assertThat(parametersNoPrefix).isNotEqualTo(parametersLegacy);
114     assertThat(parametersNoPrefix.hashCode()).isNotEqualTo(parametersLegacy.hashCode());
115   }
116 
117   @Test
testNotEqualAndNotEqualHashCode_tink()118   public void testNotEqualAndNotEqualHashCode_tink() throws Exception {
119     Ed25519Parameters parametersTink = Ed25519Parameters.create(TINK);
120 
121     Ed25519Parameters parametersCrunchy = Ed25519Parameters.create(CRUNCHY);
122     Ed25519Parameters parametersLegacy = Ed25519Parameters.create(LEGACY);
123 
124     assertThat(parametersTink).isNotEqualTo(parametersCrunchy);
125     assertThat(parametersTink.hashCode()).isNotEqualTo(parametersCrunchy.hashCode());
126 
127     assertThat(parametersTink).isNotEqualTo(parametersLegacy);
128     assertThat(parametersTink.hashCode()).isNotEqualTo(parametersLegacy.hashCode());
129   }
130 
131   @Test
testNotEqualAndNotEqualHashCode_crunchy_legacy()132   public void testNotEqualAndNotEqualHashCode_crunchy_legacy() throws Exception {
133     Ed25519Parameters parametersCrunchy = Ed25519Parameters.create(CRUNCHY);
134     Ed25519Parameters parametersLegacy = Ed25519Parameters.create(LEGACY);
135 
136     assertThat(parametersCrunchy).isNotEqualTo(parametersLegacy);
137     assertThat(parametersCrunchy.hashCode()).isNotEqualTo(parametersLegacy.hashCode());
138   }
139 }
140