# 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 BridgeWithAIA

entity Army
  type Root

entity Navy
  type Root

entity Bridge
  type Bridge
  issuer Army
  issuer Navy

entity CA1
  type Intermediate
  issuer Bridge
    aia Bridge

entity EE1
  type EE
  issuer CA1

testdb EE1

verify EE1:CA1
  cert CA1:Bridge
  trust Army:
  result fail

verify EE1:CA1
  cert CA1:Bridge
  trust Army:
  fetch
# should pass, bug 435314
# temporary result - test fails only with dbm cert db
  result dbm:fail all:pass

verify EE1:CA1
  cert CA1:Bridge
  trust Navy:
  fetch
  result pass

verify EE1:CA1
  cert CA1:Bridge
  cert Bridge:Army
  trust Navy:
  fetch
  result pass

