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

db All

import TestCA.ca:x:CT,C,C
import TestUser50:x:
import TestUser51:x:
import PayPalRootCA:x:CT,C,C
import PayPalICA:x:
import PayPalEE:x:
import BrAirWaysBadSig:x:

verify TestUser50:x
  result pass

verify TestUser51:x
  result pass

verify PayPalEE:x
  policy OID.2.16.840.1.114412.2.1 
  result pass

verify BrAirWaysBadSig:x
  result fail

