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

entity RootCA
  type Root

entity CA1
  type Intermediate
  issuer RootCA
  policy any

entity CA2
  type Intermediate
  issuer CA1
  policy OID.1.0
  inhibit 0

entity CA3
  type Intermediate
  issuer CA1
  policy OID.1.0

entity User1
  type EE
  issuer CA2
  policy OID.1.0

entity User2
  type EE
  issuer CA2
  policy any

entity User3
  type EE
  issuer CA3
  policy any
 
db All

import RootCA::
import CA1:RootCA:
import CA2:CA1:
import CA3:CA1:

verify User1:CA2
  trust RootCA
  policy OID.1.0
  result pass

verify User1:CA2
  trust RootCA
  policy OID.2.0
  result fail

verify User2:CA2
  trust RootCA
  policy OID.1.0
  result fail

verify User2:CA2
  trust RootCA
  policy OID.2.0
  result fail

verify User3:CA3
  trust RootCA
  policy OID.1.0
  result pass

verify User3:CA3
  trust RootCA
  policy OID.2.0
  result fail

