");
// Add P, Q, G and Y
sb.Append(""+Convert.ToBase64String(dsaParams.P)+"
");
sb.Append(""+Convert.ToBase64String(dsaParams.Q)+"
");
sb.Append(""+Convert.ToBase64String(dsaParams.G)+"");
sb.Append(""+Convert.ToBase64String(dsaParams.Y)+"");
// Add optional components if present
if (dsaParams.J != null) {
sb.Append(""+Convert.ToBase64String(dsaParams.J)+"");
}
if ((dsaParams.Seed != null)) { // note we assume counter is correct if Seed is present
sb.Append(""+Convert.ToBase64String(dsaParams.Seed)+"");
sb.Append(""+Convert.ToBase64String(Utils.ConvertIntToByteArray(dsaParams.Counter))+"");
}
if (includePrivateParameters) {
// Add the private component
sb.Append(""+Convert.ToBase64String(dsaParams.X)+"");
}
sb.Append("");
return(sb.ToString());
}
abstract public DSAParameters ExportParameters(bool includePrivateParameters);
abstract public void ImportParameters(DSAParameters parameters);
}
}