diff options
Diffstat (limited to 'gnu/testlet/java/security/SecureRandom/Instance.java')
-rw-r--r-- | gnu/testlet/java/security/SecureRandom/Instance.java | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/gnu/testlet/java/security/SecureRandom/Instance.java b/gnu/testlet/java/security/SecureRandom/Instance.java new file mode 100644 index 00000000..d958ab0c --- /dev/null +++ b/gnu/testlet/java/security/SecureRandom/Instance.java @@ -0,0 +1,119 @@ +// Tags: JDK1.2 +// +// Uses: MauveSecureRandom + +// Copyright (C) 2002 Free Software Foundation, Inc. +// Written by Mark Wielaard (mark@klomp.org) + +// This file is part of Mauve. + +// Mauve is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2, or (at your option) +// any later version. + +// Mauve is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Mauve; see the file COPYING. If not, write to +// the Free Software Foundation, 59 Temple Place - Suite 330, +// Boston, MA 02111-1307, USA. */ + +package gnu.testlet.java.security.SecureRandom; + +import gnu.testlet.Testlet; +import gnu.testlet.TestHarness; + +import java.security.Security; +import java.security.Provider; +import java.security.SecureRandom; +import java.security.GeneralSecurityException; + +public class Instance extends Provider + implements Testlet +{ + static final String NAME = "Mauve-Test-Provider-SecureRandom"; + static final double VERSION = 3.14; + static final String INFO = "Mauve Info-Test implements MauveSecureRandom"; + + TestHarness harness; + + public Instance() + { + super(NAME, VERSION, INFO); + + put("SecureRandom.MauveSecureRandom", + "gnu.testlet.java.security.SecureRandom.MauveSecureRandom"); + put("Alg.Alias.SecureRandom.MauveAlias", "MauveSecureRandom"); + } + + void checkSecureRandom(String name) + { + checkSecureRandom(name, null); + } + + void checkSecureRandom(String name, String provider) + { + String checkPoint = name + (provider == null ? "" : " " + provider); + harness.checkPoint(checkPoint); + + SecureRandom sr; + try + { + if (provider == null) + sr = SecureRandom.getInstance(name); + else + sr = SecureRandom.getInstance(name, provider); + } + catch (GeneralSecurityException gse) + { + harness.fail(checkPoint + " instance caught " + gse); + return; + } + + // Just make sure we got the correct Signature + harness.check(sr.getProvider(), this); + + // Do some of our dummy operations + byte[] seed = new byte[1]; + seed[0] = 42; + sr.setSeed(seed); + byte[] random = new byte[1]; + sr.nextBytes(random); + harness.check(random[0], (byte)42); + } + + public void test (TestHarness h) + { + this.harness = h; + + // Without provider + byte[] seed = new byte[1]; + seed[0] = 42; + SecureRandom sr = new SecureRandom(); + harness.check(sr != null); + sr = new SecureRandom(seed); + harness.check(sr != null); + + // With our own provider + Security.addProvider(this); + sr = new SecureRandom(); + harness.check(sr != null); + sr = new SecureRandom(seed); + harness.check(sr != null); + + checkSecureRandom("MauveSecureRandom"); + checkSecureRandom("MAUVESecurerandom"); + checkSecureRandom("MauveAlias"); + checkSecureRandom("MAUVEALIAS"); + + checkSecureRandom("MauveSecureRandom", NAME); + checkSecureRandom("MAUVESECURERANDOM", NAME); + checkSecureRandom("MauveAlias", NAME); + checkSecureRandom("MAUVEALIAS", NAME); + } +} + |