• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  /*
2   * Copyright (C) 2012 The Android Open Source Project
3   *
4   * Licensed under the Apache License, Version 2.0 (the "License");
5   * you may not use this file except in compliance with the License.
6   * You may obtain a copy of the License at
7   *
8   *      http://www.apache.org/licenses/LICENSE-2.0
9   *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  
17  #ifndef __ADB_AUTH_H
18  #define __ADB_AUTH_H
19  
20  #include "adb.h"
21  
22  extern bool auth_required;
23  
24  int adb_auth_keygen(const char* filename);
25  void adb_auth_verified(atransport *t);
26  
27  void send_auth_request(atransport *t);
28  void send_auth_response(uint8_t *token, size_t token_size, atransport *t);
29  void send_auth_publickey(atransport *t);
30  
31  /* AUTH packets first argument */
32  /* Request */
33  #define ADB_AUTH_TOKEN         1
34  /* Response */
35  #define ADB_AUTH_SIGNATURE     2
36  #define ADB_AUTH_RSAPUBLICKEY  3
37  
38  #if ADB_HOST
39  
40  void adb_auth_init(void);
41  int adb_auth_sign(void *key, const unsigned char* token, size_t token_size,
42                    unsigned char* sig);
43  void *adb_auth_nextkey(void *current);
44  int adb_auth_get_userkey(unsigned char *data, size_t len);
45  
adb_auth_generate_token(void * token,size_t token_size)46  static inline int adb_auth_generate_token(void *token, size_t token_size) { return 0; }
adb_auth_verify(void * token,void * sig,int siglen)47  static inline int adb_auth_verify(void *token, void *sig, int siglen) { return 0; }
adb_auth_confirm_key(unsigned char * data,size_t len,atransport * t)48  static inline void adb_auth_confirm_key(unsigned char *data, size_t len, atransport *t) { }
49  
50  #else // !ADB_HOST
51  
adb_auth_sign(void * key,const unsigned char * token,size_t token_size,unsigned char * sig)52  static inline int adb_auth_sign(void* key, const unsigned char* token,
53                                  size_t token_size, unsigned char* sig) {
54      return 0;
55  }
adb_auth_nextkey(void * current)56  static inline void *adb_auth_nextkey(void *current) { return NULL; }
adb_auth_get_userkey(unsigned char * data,size_t len)57  static inline int adb_auth_get_userkey(unsigned char *data, size_t len) { return 0; }
58  
59  void adbd_auth_init(void);
60  void adbd_cloexec_auth_socket();
61  int adb_auth_generate_token(void *token, size_t token_size);
62  int adb_auth_verify(uint8_t* token, uint8_t* sig, int siglen);
63  void adb_auth_confirm_key(unsigned char *data, size_t len, atransport *t);
64  
65  #endif // ADB_HOST
66  
67  #endif // __ADB_AUTH_H
68