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);
        }

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…