adb_auth.h revision d5fcafaf41f8ec90986c813f75ec78402096af2d
19509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkey/*
29509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkey * Copyright (C) 2012 The Android Open Source Project
39509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkey *
49509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkey * Licensed under the Apache License, Version 2.0 (the "License");
59509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkey * you may not use this file except in compliance with the License.
69509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkey * You may obtain a copy of the License at
79509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkey *
89509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkey *      http://www.apache.org/licenses/LICENSE-2.0
99509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkey *
109509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkey * Unless required by applicable law or agreed to in writing, software
119509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkey * distributed under the License is distributed on an "AS IS" BASIS,
129509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkey * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkey * See the License for the specific language governing permissions and
149509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkey * limitations under the License.
159509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkey */
169509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkey
179509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkey#ifndef __ADB_AUTH_H
189509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkey#define __ADB_AUTH_H
199509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkey
2046ac0ef00b7df5432d1704b221738e51234bedc5Jeff Sharkeyvoid adb_auth_init(void);
2146ac0ef00b7df5432d1704b221738e51234bedc5Jeff Sharkeyvoid adb_auth_verified(atransport *t);
229509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkey
239509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkey/* AUTH packets first argument */
249509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkey/* Request */
259509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkey#define ADB_AUTH_TOKEN         1
269509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkey/* Response */
279509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkey#define ADB_AUTH_SIGNATURE     2
289509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkey#define ADB_AUTH_RSAPUBLICKEY  3
299509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkey
309509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkey#if ADB_HOST
319509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkey
329509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkeyint adb_auth_sign(void *key, void *token, size_t token_size, void *sig);
339509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkeyvoid *adb_auth_nextkey(void *current);
349509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkeyint adb_auth_get_userkey(unsigned char *data, size_t len);
359509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkey
369509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkeystatic inline int adb_auth_generate_token(void *token, size_t token_size) { return 0; }
379509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkeystatic inline int adb_auth_verify(void *token, void *sig, int siglen) { return 0; }
389509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkeystatic inline void adb_auth_confirm_key(unsigned char *data, size_t len, atransport *t) { }
399509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkeystatic inline void adb_auth_reload_keys(void) { }
409509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkey
419509d27252b16f69b6fd2ebb2c552201c34e5c0cJeff Sharkey#else // !ADB_HOST
42
43static inline int adb_auth_sign(void* key, void *token, size_t token_size, void *sig) { return 0; }
44static inline void *adb_auth_nextkey(void *current) { return NULL; }
45static inline int adb_auth_get_userkey(unsigned char *data, size_t len) { return 0; }
46
47int adb_auth_generate_token(void *token, size_t token_size);
48int adb_auth_verify(void *token, void *sig, int siglen);
49void adb_auth_confirm_key(unsigned char *data, size_t len, atransport *t);
50void adb_auth_reload_keys(void);
51
52#endif // ADB_HOST
53
54#endif // __ADB_AUTH_H
55