| createKey(Long, User, ApiCourseKeyService.ExpirationChoice) |  | 100% |  | 100% | 0 | 2 | 0 | 18 | 0 | 1 |
| authenticateRawKeyForCourse(String, Long) |  | 100% |  | 100% | 0 | 5 | 0 | 10 | 0 | 1 |
| randomHex(int) |  | 100% |  | 100% | 0 | 2 | 0 | 6 | 0 | 1 |
| authenticateFromRequestForCourse(Long) |  | 100% |  | 100% | 0 | 2 | 0 | 6 | 0 | 1 |
| revokeKey(Long, Long) |  | 100% | | n/a | 0 | 1 | 0 | 5 | 0 | 1 |
| hashBytes(String, String) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| hashMatches(String, ApiCourseKey) |  | 100% | | n/a | 0 | 1 | 0 | 5 | 0 | 1 |
| ApiCourseKeyService(ApiCourseKeyRepository, CourseRepository) |  | 100% | | n/a | 0 | 1 | 0 | 5 | 0 | 1 |
| generateRawKey() |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| hashWithSalt(String, String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| listActiveKeys(Long) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| lambda$revokeKey$1(Long) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$createKey$0(Long) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |