Skip to content

Commit 45e33e7

Browse files
tholenstcopybara-github
authored andcommitted
Remove the Annotations from the KeysetMonitoringInfo.
Instead, pass in the annotations separately. After this, we can remove the "KeysetMonitoringInfo" completely and replace it with KeysetHandleInterface. PiperOrigin-RevId: 732098410 Change-Id: If76aa2624ac953bb01d54f5577bcbd1c25de87a4
1 parent 236e1c8 commit 45e33e7

25 files changed

+106
-144
lines changed

src/main/java/com/google/crypto/tink/aead/AeadWrapper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,8 @@ public Aead wrap(final PrimitiveSet<Aead> pset) throws GeneralSecurityException
137137
if (!pset.getAnnotations().isEmpty()) {
138138
MonitoringClient client = MutableMonitoringRegistry.globalInstance().getMonitoringClient();
139139
MonitoringKeysetInfo keysetInfo = MonitoringUtil.getMonitoringKeysetInfo(pset);
140-
encLogger = client.createLogger(keysetInfo, "aead", "encrypt");
141-
decLogger = client.createLogger(keysetInfo, "aead", "decrypt");
140+
encLogger = client.createLogger(keysetInfo, pset.getAnnotations(), "aead", "encrypt");
141+
decLogger = client.createLogger(keysetInfo, pset.getAnnotations(), "aead", "decrypt");
142142
} else {
143143
encLogger = MonitoringUtil.DO_NOTHING_LOGGER;
144144
decLogger = MonitoringUtil.DO_NOTHING_LOGGER;

src/main/java/com/google/crypto/tink/daead/DeterministicAeadWrapper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,8 @@ public DeterministicAead wrap(final PrimitiveSet<DeterministicAead> primitives)
142142
if (!primitives.getAnnotations().isEmpty()) {
143143
MonitoringClient client = MutableMonitoringRegistry.globalInstance().getMonitoringClient();
144144
MonitoringKeysetInfo keysetInfo = MonitoringUtil.getMonitoringKeysetInfo(primitives);
145-
encLogger = client.createLogger(keysetInfo, "daead", "encrypt");
146-
decLogger = client.createLogger(keysetInfo, "daead", "decrypt");
145+
encLogger = client.createLogger(keysetInfo, primitives.getAnnotations(), "daead", "encrypt");
146+
decLogger = client.createLogger(keysetInfo, primitives.getAnnotations(), "daead", "decrypt");
147147
} else {
148148
encLogger = MonitoringUtil.DO_NOTHING_LOGGER;
149149
decLogger = MonitoringUtil.DO_NOTHING_LOGGER;

src/main/java/com/google/crypto/tink/hybrid/HybridDecryptWrapper.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,8 @@ public HybridDecrypt wrap(final PrimitiveSet<HybridDecrypt> primitives)
118118
if (!primitives.getAnnotations().isEmpty()) {
119119
MonitoringClient client = MutableMonitoringRegistry.globalInstance().getMonitoringClient();
120120
MonitoringKeysetInfo keysetInfo = MonitoringUtil.getMonitoringKeysetInfo(primitives);
121-
decLogger = client.createLogger(keysetInfo, "hybrid_decrypt", "decrypt");
121+
decLogger =
122+
client.createLogger(keysetInfo, primitives.getAnnotations(), "hybrid_decrypt", "decrypt");
122123
} else {
123124
decLogger = MonitoringUtil.DO_NOTHING_LOGGER;
124125
}

src/main/java/com/google/crypto/tink/hybrid/HybridEncryptWrapper.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,8 @@ public HybridEncrypt wrap(final PrimitiveSet<HybridEncrypt> primitives)
9191
if (!primitives.getAnnotations().isEmpty()) {
9292
MonitoringClient client = MutableMonitoringRegistry.globalInstance().getMonitoringClient();
9393
MonitoringKeysetInfo keysetInfo = MonitoringUtil.getMonitoringKeysetInfo(primitives);
94-
encLogger = client.createLogger(keysetInfo, "hybrid_encrypt", "encrypt");
94+
encLogger =
95+
client.createLogger(keysetInfo, primitives.getAnnotations(), "hybrid_encrypt", "encrypt");
9596
} else {
9697
encLogger = MonitoringUtil.DO_NOTHING_LOGGER;
9798
}

src/main/java/com/google/crypto/tink/internal/BUILD.bazel

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -408,6 +408,7 @@ java_library(
408408
name = "mutable_monitoring_registry",
409409
srcs = ["MutableMonitoringRegistry.java"],
410410
deps = [
411+
":monitoring_annotations",
411412
":monitoring_client",
412413
":monitoring_keyset_info",
413414
":monitoring_util",
@@ -418,6 +419,7 @@ android_library(
418419
name = "mutable_monitoring_registry-android",
419420
srcs = ["MutableMonitoringRegistry.java"],
420421
deps = [
422+
":monitoring_annotations-android",
421423
":monitoring_client-android",
422424
":monitoring_keyset_info-android",
423425
":monitoring_util-android",
@@ -917,6 +919,7 @@ android_library(
917919
name = "monitoring_client-android",
918920
srcs = ["MonitoringClient.java"],
919921
deps = [
922+
":monitoring_annotations-android",
920923
":monitoring_keyset_info-android",
921924
"//src/main/java/com/google/crypto/tink/annotations:alpha-android",
922925
],
@@ -926,7 +929,6 @@ android_library(
926929
name = "monitoring_keyset_info-android",
927930
srcs = ["MonitoringKeysetInfo.java"],
928931
deps = [
929-
":monitoring_annotations-android",
930932
"//src/main/java/com/google/crypto/tink:key-android",
931933
"//src/main/java/com/google/crypto/tink:key_status-android",
932934
"//src/main/java/com/google/crypto/tink/annotations:alpha-android",
@@ -949,6 +951,7 @@ java_library(
949951
name = "monitoring_client",
950952
srcs = ["MonitoringClient.java"],
951953
deps = [
954+
":monitoring_annotations",
952955
":monitoring_keyset_info",
953956
"//src/main/java/com/google/crypto/tink/annotations:alpha",
954957
],
@@ -958,7 +961,6 @@ java_library(
958961
name = "monitoring_keyset_info",
959962
srcs = ["MonitoringKeysetInfo.java"],
960963
deps = [
961-
":monitoring_annotations",
962964
"//src/main/java/com/google/crypto/tink:key",
963965
"//src/main/java/com/google/crypto/tink:key_status",
964966
"//src/main/java/com/google/crypto/tink/annotations:alpha",

src/main/java/com/google/crypto/tink/internal/MonitoringClient.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,5 +40,9 @@ public interface Logger {
4040
}
4141

4242
/** Function that creates Logger objects. It is called when a primitive is created. */
43-
public Logger createLogger(MonitoringKeysetInfo keysetInfo, String primitive, String api);
43+
public Logger createLogger(
44+
MonitoringKeysetInfo keysetInfo,
45+
MonitoringAnnotations annotations,
46+
String primitive,
47+
String api);
4448
}

src/main/java/com/google/crypto/tink/internal/MonitoringKeysetInfo.java

Lines changed: 3 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -79,18 +79,8 @@ public static final class Builder {
7979
// builderEntries == null indicates that build has already been called and the builder is not
8080
// usable anymore.
8181
@Nullable private ArrayList<Entry> builderEntries = new ArrayList<>();
82-
private MonitoringAnnotations builderAnnotations = MonitoringAnnotations.EMPTY;
8382
@Nullable private Integer builderPrimaryKeyId = null;
8483

85-
@CanIgnoreReturnValue
86-
public Builder setAnnotations(MonitoringAnnotations annotations) {
87-
if (builderEntries == null) {
88-
throw new IllegalStateException("setAnnotations cannot be called after build()");
89-
}
90-
builderAnnotations = annotations;
91-
return this;
92-
}
93-
9484
@CanIgnoreReturnValue
9585
public Builder addEntry(Key key, KeyStatus status, int keyId) {
9686
if (builderEntries == null) {
@@ -134,9 +124,7 @@ public MonitoringKeysetInfo build() throws GeneralSecurityException {
134124
}
135125
MonitoringKeysetInfo output =
136126
new MonitoringKeysetInfo(
137-
builderAnnotations,
138-
Collections.unmodifiableList(builderEntries),
139-
builderPrimaryKeyId);
127+
Collections.unmodifiableList(builderEntries), builderPrimaryKeyId);
140128
// Collections.unmodifiableMap/List only gives an unmodifiable view of the underlying
141129
// collection. To make output immutable, we have to remove the reference to these collections.
142130
// This makes the builder unusable.
@@ -145,16 +133,12 @@ public MonitoringKeysetInfo build() throws GeneralSecurityException {
145133
}
146134
}
147135

148-
private final MonitoringAnnotations annotations;
149-
150136
@SuppressWarnings("Immutable")
151137
private final List<Entry> entries;
152138

153139
@Nullable private final Integer primaryKeyId;
154140

155-
private MonitoringKeysetInfo(
156-
MonitoringAnnotations annotations, List<Entry> entries, Integer primaryKeyId) {
157-
this.annotations = annotations;
141+
private MonitoringKeysetInfo(List<Entry> entries, Integer primaryKeyId) {
158142
this.entries = entries;
159143
this.primaryKeyId = primaryKeyId;
160144
}
@@ -163,10 +147,6 @@ public static Builder newBuilder() {
163147
return new Builder();
164148
}
165149

166-
public MonitoringAnnotations getAnnotations() {
167-
return annotations;
168-
}
169-
170150
public Entry getAt(int i) {
171151
return entries.get(i);
172152
}
@@ -191,7 +171,6 @@ public Integer getPrimaryKeyId() {
191171

192172
@Override
193173
public String toString() {
194-
return String.format(
195-
"(annotations=%s, entries=%s, primaryKeyId=%s)", annotations, entries, primaryKeyId);
174+
return String.format("(entries=%s, primaryKeyId=%s)", entries, primaryKeyId);
196175
}
197176
}

src/main/java/com/google/crypto/tink/internal/MonitoringUtil.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ public void logFailure() {}
3434

3535
public static <P> MonitoringKeysetInfo getMonitoringKeysetInfo(PrimitiveSet<P> primitiveSet) {
3636
MonitoringKeysetInfo.Builder builder = MonitoringKeysetInfo.newBuilder();
37-
builder.setAnnotations(primitiveSet.getAnnotations());
3837
KeysetHandleInterface handle = primitiveSet.getKeysetHandle();
3938
for (int i = 0; i < handle.size(); i++) {
4039
KeysetHandleInterface.Entry entry = handle.getAt(i);

src/main/java/com/google/crypto/tink/internal/MutableMonitoringRegistry.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,10 @@ public static MutableMonitoringRegistry globalInstance() {
3232
private static class DoNothingClient implements MonitoringClient {
3333
@Override
3434
public MonitoringClient.Logger createLogger(
35-
MonitoringKeysetInfo keysetInfo, String primitive, String api) {
35+
MonitoringKeysetInfo keysetInfo,
36+
MonitoringAnnotations annotations,
37+
String primitive,
38+
String api) {
3639
return MonitoringUtil.DO_NOTHING_LOGGER;
3740
}
3841
}

src/main/java/com/google/crypto/tink/internal/testing/FakeMonitoringClient.java

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ public final class FakeMonitoringClient implements MonitoringClient {
3636
public static final class LogEntry {
3737
private final MonitoringKeysetInfo keysetInfo;
3838
private final MonitoringKeysetInfo.Entry keyInfo;
39+
private final MonitoringAnnotations annotations;
3940
private final String primitive;
4041
private final String api;
4142
private final int keyId;
@@ -44,12 +45,14 @@ public static final class LogEntry {
4445
private LogEntry(
4546
MonitoringKeysetInfo keysetInfo,
4647
MonitoringKeysetInfo.Entry keyInfo,
48+
MonitoringAnnotations annotations,
4749
String primitive,
4850
String api,
4951
int keyId,
5052
long numBytesAsInput) {
5153
this.keysetInfo = keysetInfo;
5254
this.keyInfo = keyInfo;
55+
this.annotations = annotations;
5356
this.primitive = primitive;
5457
this.api = api;
5558
this.keyId = keyId;
@@ -81,7 +84,7 @@ public long getNumBytesAsInput() {
8184
}
8285

8386
public MonitoringAnnotations getAnnotations() {
84-
return keysetInfo.getAnnotations();
87+
return annotations;
8588
}
8689
}
8790

@@ -90,12 +93,15 @@ public static final class LogFailureEntry {
9093
private final String primitive;
9194
private final String api;
9295
private final MonitoringKeysetInfo keysetInfo;
96+
private final MonitoringAnnotations annotations;
9397

9498
private LogFailureEntry(
9599
MonitoringKeysetInfo keysetInfo,
100+
MonitoringAnnotations annotations,
96101
String primitive,
97102
String api) {
98103
this.keysetInfo = keysetInfo;
104+
this.annotations = annotations;
99105
this.primitive = primitive;
100106
this.api = api;
101107
}
@@ -113,7 +119,7 @@ public MonitoringKeysetInfo getKeysetInfo() {
113119
}
114120

115121
public MonitoringAnnotations getAnnotations() {
116-
return keysetInfo.getAnnotations();
122+
return annotations;
117123
}
118124
}
119125

@@ -130,6 +136,7 @@ private synchronized void addLogFailureEntry(LogFailureEntry entry) {
130136

131137
private final class Logger implements MonitoringClient.Logger {
132138
private final MonitoringKeysetInfo keysetInfo;
139+
private final MonitoringAnnotations annotations;
133140
private final HashMap<Integer, MonitoringKeysetInfo.Entry> entries;
134141
private final String primitive;
135142
private final String api;
@@ -140,17 +147,23 @@ public void log(int keyId, long numBytesAsInput) {
140147
throw new IllegalStateException("keyId not found in keysetInfo: " + keyId);
141148
}
142149
addLogEntry(
143-
new LogEntry(keysetInfo, entries.get(keyId), primitive, api, keyId, numBytesAsInput));
150+
new LogEntry(
151+
keysetInfo, entries.get(keyId), annotations, primitive, api, keyId, numBytesAsInput));
144152
}
145153

146154
@Override
147155
public void logFailure() {
148-
addLogFailureEntry(new LogFailureEntry(keysetInfo, primitive, api));
156+
addLogFailureEntry(new LogFailureEntry(keysetInfo, annotations, primitive, api));
149157
}
150158

151-
private Logger(MonitoringKeysetInfo keysetInfo, String primitive, String api) {
159+
private Logger(
160+
MonitoringKeysetInfo keysetInfo,
161+
MonitoringAnnotations annotations,
162+
String primitive,
163+
String api) {
152164
this.keysetInfo = keysetInfo;
153165
this.primitive = primitive;
166+
this.annotations = annotations;
154167
this.api = api;
155168
entries = new HashMap<>();
156169
for (int i = 0; i < keysetInfo.size(); i++) {
@@ -164,8 +177,12 @@ public FakeMonitoringClient() {
164177
}
165178

166179
@Override
167-
public Logger createLogger(MonitoringKeysetInfo keysetInfo, String primitive, String api) {
168-
return new Logger(keysetInfo, primitive, api);
180+
public Logger createLogger(
181+
MonitoringKeysetInfo keysetInfo,
182+
MonitoringAnnotations annotations,
183+
String primitive,
184+
String api) {
185+
return new Logger(keysetInfo, annotations, primitive, api);
169186
}
170187

171188
/** Clears all log and log failure entries. */

0 commit comments

Comments
 (0)