# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is the Network Security Services (NSS)
#
# The Initial Developer of the Original Code is Sun Microsystems, Inc.
# Portions created by the Initial Developer are Copyright (C) 2009
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
#   Slavomir Katuscak <slavomir.katuscak@sun.com>, Sun Microsystems
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****

scenario MegaBridge_3_2

entity Root1
  type Root

entity Root2
  type Root

entity Root3
  type Root

entity Root4
  type Root

entity Root5
  type Root

entity Root6
  type Root

entity Root7
  type Root

entity Root8
  type Root

entity Root9
  type Root

entity Bridge11
  type Bridge
  issuer Root1
  issuer Root2
  issuer Root3

entity Bridge12
  type Bridge
  issuer Root4
  issuer Root5
  issuer Root6

entity Bridge13
  type Bridge
  issuer Root7
  issuer Root8
  issuer Root9

entity Bridge21
  type Bridge
  issuer Bridge11
  issuer Bridge12
  issuer Bridge13

entity CA1
  type Intermediate
  issuer Bridge21

entity EE1
  type EE
  issuer CA1

testdb EE1

verify EE1:CA1
  cert CA1:Bridge21
  cert Bridge21:Bridge11
  cert Bridge11:Root1
  trust Root1:
  result pass

verify EE1:CA1
  cert CA1:Bridge21
  cert Bridge21:Bridge11
  cert Bridge11:Root2
  trust Root2:
  result pass

verify EE1:CA1
  cert CA1:Bridge21
  cert Bridge21:Bridge11
  cert Bridge11:Root3
  trust Root3:
  result pass

verify EE1:CA1
  cert CA1:Bridge21
  cert Bridge21:Bridge12
  cert Bridge12:Root4
  trust Root4:
  result pass

verify EE1:CA1
  cert CA1:Bridge21
  cert Bridge21:Bridge12
  cert Bridge12:Root5
  trust Root5:
  result pass

verify EE1:CA1
  cert CA1:Bridge21
  cert Bridge21:Bridge12
  cert Bridge12:Root6
  trust Root6:
  result pass

verify EE1:CA1
  cert CA1:Bridge21
  cert Bridge21:Bridge13
  cert Bridge13:Root7
  trust Root7:
  result pass

verify EE1:CA1
  cert CA1:Bridge21
  cert Bridge21:Bridge13
  cert Bridge13:Root8
  trust Root8:
  result pass

verify EE1:CA1
  cert CA1:Bridge21
  cert Bridge21:Bridge13
  cert Bridge13:Root9
  trust Root9:
  result pass

