password_handle.h revision aedf605d883b4ebade9c810eb39cbf5125a58c7d
194b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales/* 294b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales * Copyright 2015 The Android Open Source Project 394b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales * 494b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales * Licensed under the Apache License, Version 2.0 (the "License"); 594b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales * you may not use this file except in compliance with the License. 694b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales * You may obtain a copy of the License at 794b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales * 894b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales * http://www.apache.org/licenses/LICENSE-2.0 994b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales * 1094b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales * Unless required by applicable law or agreed to in writing, software 1194b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales * distributed under the License is distributed on an "AS IS" BASIS, 1294b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1394b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales * See the License for the specific language governing permissions and 1494b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales * limitations under the License. 1594b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales */ 1694b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales 1794b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales#ifndef GATEKEEPER_PASSWORD_HANDLE_H_ 1894b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales#define GATEKEEPER_PASSWORD_HANDLE_H_ 1994b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales 2094b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Moralesnamespace gatekeeper { 2194b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales 2294b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Moralestypedef uint64_t secure_id_t; 2394b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Moralestypedef uint64_t salt_t; 2494b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales/** 2594b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales * structure for easy serialization 2694b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales * and deserialization of password handles. 2794b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales */ 28aedf605d883b4ebade9c810eb39cbf5125a58c7dAndres Moralesstatic const uint8_t HANDLE_VERSION = 1; 2994b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Moralesstruct __attribute__ ((__packed__)) password_handle_t { 3094b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales // fields included in signature 3194b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales uint8_t version; 3294b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales secure_id_t user_id; 3394b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales secure_id_t authenticator_id; 3494b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales 3594b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales // fields not included in signature 3694b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales salt_t salt; 3794b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales uint8_t signature[32]; 38aedf605d883b4ebade9c810eb39cbf5125a58c7dAndres Morales 39aedf605d883b4ebade9c810eb39cbf5125a58c7dAndres Morales bool hardware_backed; 4094b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales}; 4194b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales} 4294b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales 4394b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales 4494b201ee929de7ca8ee01c5b5aac5495ba749a30Andres Morales#endif // GATEKEEPER_PASSWORD_HANDLE_H_ 45