# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

scenario Bridge

entity Army
  type Root

entity Navy
  type Root

entity Bridge
  type Bridge
  issuer Army
  issuer Navy

entity User
  type EE
  issuer Bridge

db All

import Army::
import Navy::

verify User:Bridge
  cert Bridge:Navy
  trust Navy 
  result pass

verify User:Bridge
  cert Bridge:Army
  trust Army
  result pass

verify User:Bridge
  cert Bridge:Navy
  trust Army
  result fail

import Bridge:Army:
import Bridge:Navy:

verify User:Bridge
  trust Army
  result pass

verify User:Bridge
  trust Navy 
  result pass

db ArmyOnly

import Army::C,,

verify User:Bridge
  result fail

verify User:Bridge
  cert Bridge:Navy
  result fail

verify User:Bridge
  cert Bridge:Navy
  cert Navy:
  result fail

verify User:Bridge
  cert Bridge:Navy
  cert Navy:
  trust Navy:
  result pass

verify User:Bridge
  cert Bridge:Navy
  trust Navy:
  result pass

db NavyOnly

import Navy::C,,

verify User:Bridge
  result fail

verify User:Bridge
  cert Bridge:Army
  result fail

verify User:Bridge
  cert Bridge:Army
  cert Army:
  result fail

verify User:Bridge
  cert Bridge:Army
  cert Army:
  trust Army:
  result pass

verify User:Bridge
  cert Bridge:Army
  trust Army:
  result pass

