INNER CODE UNIT · Java
generateRandomToken
GrapheneOS/AttestationServer · src/main/java/app/attestation/server/AttestationProtocol.java:422
static byte[] generateRandomToken() {
final byte[] challenge = new byte[RANDOM_TOKEN_LENGTH];
random.get().nextBytes(challenge);
return challenge;
}
private static byte[] getFingerprint(final Certificate certificate)
throws CertificateEncodingException {
return FINGERPRINT_HASH_FUNCTION.hashBytes(certificate.getEncoded()).asBytes();
}
private record Verified(String device, String verifiedBootKey, byte[] verifiedBootHash,
String osName, int osVersion, int osPatchLevel, int vendorPatchLevel, int bootPatchLevel,
int appVersion, int appVariant, int securityLevel, boolean attestKey) {
boolean hasPogoPins() {
return DEVICE_PIXEL_TABLET.equals(device);
}