google / android-key-attestation Goto Github PK
View Code? Open in Web Editor NEWAndroid Key Attestation validation library
License: Apache License 2.0
Android Key Attestation validation library
License: Apache License 2.0
Do we need to consider key rotation for this key, should we just hardcode the key in our implementation? Is there a way to retrieve the public key through a public URI?
Some certificates cause the library to exit with a NullPointerException, in our case when ASN1Sequence.fromByteArray(attestationApplicationId.getOctets());
returned null. We need to make sure that these cases don't break the parsing completely.
Stack trace:
20:11:35.636: Caused by: java.lang.NullPointerException
20:11:35.636: at com.google.android.attestation.AttestationApplicationId.<init>(AttestationApplicationId.java:50)
20:11:35.636: at com.google.android.attestation.AttestationApplicationId.createAttestationApplicationId(AttestationApplicationId.java:79)
20:11:35.636: at com.google.android.attestation.AuthorizationList.<init>(AuthorizationList.java:186)
20:11:35.636: at com.google.android.attestation.AuthorizationList.createAuthorizationList(AuthorizationList.java:221)
20:11:35.636: at com.google.android.attestation.ParsedAttestationRecord.<init>(ParsedAttestationRecord.java:66)
20:11:35.636: at com.google.android.attestation.ParsedAttestationRecord.createParsedAttestationRecord(ParsedAttestationRecord.java:78)
From a comment on a pull request:
I don't seem to have the ability to create issues in this repository so am commenting here:
Do you mind also publishing this server library into maven central? The current non-Google3 users I can find of it are all just directly copying some version of it, which will eventually drift/be stale.
$ bazel test //src/test/...
INFO: Analyzed 4 targets (0 packages loaded, 0 targets configured).
INFO: Found 4 test targets...
INFO: Elapsed time: 1.165s, Critical Path: 1.06s
INFO: 5 processes: 1 internal, 4 darwin-sandbox.
INFO: Build completed successfully, 5 total actions
//src/test/java/com/google/android/attestation:AttestationApplicationIdTest PASSED in 0.8s
//src/test/java/com/google/android/attestation:AuthorizationListTest PASSED in 0.7s
//src/test/java/com/google/android/attestation:ParsedAttestationRecordTest PASSED in 1.0s
//src/test/java/com/google/android/attestation:RootOfTrustTest PASSED in 0.8s
Executed 4 out of 4 tests: 4 tests pass.
There were tests whose specified size is too big. Use the --test_verbose_timeout_warnings command line option to see which ones these are.
bweeks-macbookpro3:android-key-attestation bweeks$ git stash
Saved working directory and index state WIP on master: 61d8232 Make value classes immutable
bweeks-macbookpro3:android-key-attestation bweeks$ bazel test //...
ERROR: /Users/bweeks/Code/android-key-attestation/server/bin/test/com/google/android/attestation/BUILD:42:10: in java_test rule //server/bin/test/com/google/android/attestation:RootOfTrustTest:
Traceback (most recent call last):
File "/virtual_builtins_bzl/bazel/java/bazel_java_binary.bzl", line 28, column 35, in _bazel_java_test_impl
File "/virtual_builtins_bzl/bazel/java/bazel_java_binary.bzl", line 72, column 17, in _bazel_base_binary_impl
Error in fail: cannot determine test class. You might want to rename the rule or add a 'test_class' attribute.
ERROR: /Users/bweeks/Code/android-key-attestation/server/bin/test/com/google/android/attestation/BUILD:42:10: Analysis of target '//server/bin/test/com/google/android/attestation:RootOfTrustTest' failed
Use --verbose_failures to see the command lines of failed build steps.
ERROR: Analysis of target '//server/bin/test/com/google/android/attestation:RootOfTrustTest' failed; build aborted
INFO: Elapsed time: 3.226s, Critical Path: 0.00s
INFO: 1 process: 1 internal.
ERROR: Build did NOT complete successfully
ERROR: No test targets were found, yet testing was requested
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.