0N/A/*
0N/A * reserved comment block
0N/A * DO NOT REMOVE OR ALTER!
0N/A */
0N/A/*
0N/A * Copyright 1999-2004 The Apache Software Foundation.
0N/A *
0N/A * Licensed under the Apache License, Version 2.0 (the "License");
0N/A * you may not use this file except in compliance with the License.
0N/A * You may obtain a copy of the License at
0N/A *
0N/A * http://www.apache.org/licenses/LICENSE-2.0
0N/A *
0N/A * Unless required by applicable law or agreed to in writing, software
0N/A * distributed under the License is distributed on an "AS IS" BASIS,
0N/A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
0N/A * See the License for the specific language governing permissions and
0N/A * limitations under the License.
0N/A *
0N/A */
0N/Apackage com.sun.org.apache.xml.internal.security.keys.content.x509;
0N/A
0N/Aimport java.math.BigInteger;
0N/Aimport java.security.cert.X509Certificate;
0N/A
0N/Aimport com.sun.org.apache.xml.internal.security.exceptions.XMLSecurityException;
0N/Aimport com.sun.org.apache.xml.internal.security.utils.Constants;
0N/Aimport com.sun.org.apache.xml.internal.security.utils.RFC2253Parser;
0N/Aimport com.sun.org.apache.xml.internal.security.utils.SignatureElementProxy;
0N/Aimport com.sun.org.apache.xml.internal.security.utils.XMLUtils;
0N/Aimport org.w3c.dom.Document;
0N/Aimport org.w3c.dom.Element;
0N/A
0N/A/**
0N/A *
661N/A * @author $Author: mullan $
0N/A */
0N/Apublic class XMLX509IssuerSerial extends SignatureElementProxy
0N/A implements XMLX509DataContent {
0N/A
661N/A /** {@link java.util.logging} logging facility */
0N/A static java.util.logging.Logger log =
0N/A java.util.logging.Logger.getLogger(
0N/A XMLX509IssuerSerial.class.getName());
0N/A
661N/A /**
661N/A * Constructor XMLX509IssuerSerial
661N/A *
661N/A * @param element
661N/A * @param baseURI
661N/A * @throws XMLSecurityException
661N/A */
661N/A public XMLX509IssuerSerial(Element element, String baseURI)
0N/A throws XMLSecurityException {
661N/A super(element, baseURI);
661N/A }
0N/A
661N/A /**
661N/A * Constructor XMLX509IssuerSerial
661N/A *
661N/A * @param doc
661N/A * @param x509IssuerName
661N/A * @param x509SerialNumber
661N/A */
661N/A public XMLX509IssuerSerial(Document doc, String x509IssuerName,
661N/A BigInteger x509SerialNumber) {
0N/A
661N/A super(doc);
661N/A XMLUtils.addReturnToElement(this._constructionElement);
661N/A addTextElement(x509IssuerName, Constants._TAG_X509ISSUERNAME);
661N/A addTextElement(x509SerialNumber.toString(), Constants._TAG_X509SERIALNUMBER);
661N/A }
0N/A
661N/A /**
661N/A * Constructor XMLX509IssuerSerial
661N/A *
661N/A * @param doc
661N/A * @param x509IssuerName
661N/A * @param x509SerialNumber
661N/A */
661N/A public XMLX509IssuerSerial(Document doc, String x509IssuerName,
661N/A String x509SerialNumber) {
661N/A this(doc, x509IssuerName, new BigInteger(x509SerialNumber));
661N/A }
0N/A
661N/A /**
661N/A * Constructor XMLX509IssuerSerial
661N/A *
661N/A * @param doc
661N/A * @param x509IssuerName
661N/A * @param x509SerialNumber
661N/A */
661N/A public XMLX509IssuerSerial(Document doc, String x509IssuerName,
661N/A int x509SerialNumber) {
661N/A this(doc, x509IssuerName,
661N/A new BigInteger(Integer.toString(x509SerialNumber)));
661N/A }
0N/A
661N/A /**
661N/A * Constructor XMLX509IssuerSerial
661N/A *
661N/A * @param doc
661N/A * @param x509certificate
661N/A */
661N/A public XMLX509IssuerSerial(Document doc, X509Certificate x509certificate) {
0N/A
661N/A this(doc,
661N/A RFC2253Parser.normalize(x509certificate.getIssuerDN().getName()),
661N/A x509certificate.getSerialNumber());
661N/A }
0N/A
661N/A /**
661N/A * Method getSerialNumber
661N/A *
661N/A * @return the serial number
661N/A */
661N/A public BigInteger getSerialNumber() {
0N/A
661N/A String text = this.getTextFromChildElement
661N/A (Constants._TAG_X509SERIALNUMBER, Constants.SignatureSpecNS);
661N/A if (log.isLoggable(java.util.logging.Level.FINE))
661N/A log.log(java.util.logging.Level.FINE, "X509SerialNumber text: " + text);
0N/A
661N/A return new BigInteger(text);
661N/A }
0N/A
661N/A /**
661N/A * Method getSerialNumberInteger
661N/A *
661N/A * @return the serial number as plain int
661N/A */
661N/A public int getSerialNumberInteger() {
661N/A return this.getSerialNumber().intValue();
661N/A }
0N/A
661N/A /**
661N/A * Method getIssuerName
661N/A *
661N/A * @return the issuer name
661N/A */
661N/A public String getIssuerName() {
0N/A
661N/A return RFC2253Parser
661N/A .normalize(this
661N/A .getTextFromChildElement(Constants._TAG_X509ISSUERNAME,
661N/A Constants.SignatureSpecNS));
661N/A }
0N/A
661N/A /** @inheritDoc */
661N/A public boolean equals(Object obj) {
0N/A
661N/A if (obj == null) {
661N/A return false;
661N/A }
661N/A if (!this.getClass().getName().equals(obj.getClass().getName())) {
661N/A return false;
661N/A }
0N/A
661N/A XMLX509IssuerSerial other = (XMLX509IssuerSerial) obj;
0N/A
661N/A return this.getSerialNumber().equals(other.getSerialNumber())
661N/A && this.getIssuerName().equals(other.getIssuerName());
661N/A }
0N/A
661N/A /** @inheritDoc */
661N/A public String getBaseLocalName() {
661N/A return Constants._TAG_X509ISSUERSERIAL;
661N/A }
0N/A}