// 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;
}
