summaryrefslogtreecommitdiffstats
path: root/sync/protocol/wifi_credential_specifics.proto
blob: 29f9f07b58bd267362a2024df4cd37f8af438455 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Sync protocol datatype extension for WiFi credentials.

// Update proto_{value,enum}_conversions{.h,.cc,_unittest.cc} if you change
// any fields in this file.

syntax = "proto2";

option optimize_for = LITE_RUNTIME;
option retain_unknown_fields = true;

package sync_pb;

// Properties of WiFi credential objects.
message WifiCredentialSpecifics {
  optional bytes ssid = 1;  // Not necessarily UTF-8. May contain NUL.

  enum SecurityClass {
    SECURITY_CLASS_INVALID = 0;
    SECURITY_CLASS_NONE = 1;
    SECURITY_CLASS_WEP = 2;
    SECURITY_CLASS_PSK = 3;  // WPA-PSK or RSN-PSK
    // 802.1X is omittted, as we do not support syncing 802.1X
    // credentials.
  }
  optional SecurityClass security_class = 2;

  // Network passphrase.
  //
  // For SECURITY_CLASS_NONE, the passphrase should be ignored.
  //
  // For SECURITY_CLASS_WEP, the passphrase should have one of the
  // following formats:
  // - WEP-40:
  //   - 5 character ASCII string. Each character maps one byte of the key.
  //   - 10 character hex string. The string maps to the WEP key by simple
  //     hex decoding.
  // - WEP-104:
  //   - 13 character ASCII string. Each character maps one byte of the key.
  //   - 26 character hex string. The string maps to the WEP key by simple
  //     hex decoding.
  //
  // For SECURITY_CLASS_PSK, the passphrase should have one of the
  // following two formats:
  // - An 8-63 character ASCII string. The string maps to the
  //   WPA/WPA-2 PSK as per IEEE 802.11i.
  // - A 64 character hex string. The string maps to the PSK per
  //   simple hex decoding.
  //
  // Note that, although the passphrase "should" contain only ASCII
  // characters, we represent |passphrase| as |bytes| rather than
  // |string|. This is to accomodate networks that use non-ASCII
  // passphrases.
  optional bytes passphrase = 3;
}