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

entity Root
  type Root

entity CA1
  type Intermediate
  issuer Root 
    policy OID.1.0
    mapping OID.1.0:OID.1.1

entity CA2
  type Intermediate
  issuer CA1
    policy OID.1.1

entity User
  type EE
  issuer CA2
    policy OID.1.1

db All

import Root::
import CA1:Root:
import CA2:CA1:

verify User:CA2
  trust Root
  policy OID.1.0
# should fail, bug 430859
  result pass

verify User:CA2
  trust Root
  policy OID.1.1
# should pass, bug 430859
  result fail

verify User:CA2
  trust CA1
  policy OID.1.0
  result fail

verify User:CA2
  trust CA1
  policy OID.1.1
  result pass

verify User:CA2
  trust CA2
  policy OID.1.0
  result fail

verify User:CA2
  trust CA2
  policy OID.1.1
  result pass

